在 Ubuntu 20.04 上安装 SQL Server 2019 (15.x)
文档
- 官网文档地址:https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15&tabs=ubuntu2004
- 数据库的基本操作:https://zhuanlan.zhihu.com/p/507138344
安装
安装方式有二(本文采用第一种方式安装,但官方推荐第二种):
第一种方式:导入存储库后,在线安装
1# 导入公共存储库 GPG 密钥:
2curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
3
4# 注册 SQL Server Ubuntu 存储库:
5sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
6
7# 安装 SQL Server:
8sudo apt-get update
9sudo apt-get install -y mssql-server
第二种方式:
下载地址:https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019/pool/main/m/mssql-server/
1# 安装依赖:
2sudo apt install gdb gdbserver libbabeltrace1 libc++1 libc++abi1 libc6-dbg libdw1 libsasl2-modules-gssapi-mit libsss-nss-idmap0 libatomic1 gawk libsigsegv2
3
4# 在上面的下载地址中下载mssql-server_15.0.4316.3-2_amd64.deb,然后安装:
5sudo dpkg -i mssql-server_15.0.4316.3-2_amd64.deb
6
7# 如果安装过程中出错,执行:
8sudo apt --fix-broken install
数据库初始化:
1sudo /opt/mssql/bin/mssql-conf setup
第一步:选择sqlserver版本,一般选择 2(Developer)或 3(Express);本例中选 3
说明:
SQL Server Developer 开发人员版包含了企业版全部的完整功能,但该版本仅能用于开发、测试和演示用途,并不允许部署到生产环境中。
Express 速成版则是完全免费的入门级 SQL Server 数据库版本,适用于学习、开发、或部署较小规模的 WEB 和应用程序服务器。
第二步:接受许可,输入:yes
第三步:选择语言:选择 10(简体中文)
第四步:输入 sa 帐户的密码和确认密码
等待安装完成即可
初始化示例如下:
1zhangcong@zhangcong-virtual-machine:~$ sudo /opt/mssql/bin/mssql-conf setup
2选择 SQL Server 的一个版本:
3 1) Evaluation (免费,无生产许可,180 天限制)
4 2) Developer (免费,无生产许可)
5 3) Express (免费)
6 4) Web (付费版)
7 5) Standard (付费版)
8 6) Enterprise (付费版) - CPU 核心利用率限制为 20 个物理/40 个超线程
9 7) Enterprise Core (付费版) - CPU 核心利用率达到操作系统最大值
10 8) 我通过零售渠道购买了许可证并具有要输入的产品密钥。
11
12可在以下位置找到有关版本的详细信息:
13https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x804
14
15使用此软件的付费版本需要通过以下途径获取单独授权
16Microsoft 批量许可计划。
17选择付费版本即表示你具有适用的
18要安装和运行此软件的就地许可证数量。
19
20输入版本(1-8): 3
21可以在以下位置找到此产品的许可条款:
22/usr/share/doc/mssql-server 或从以下位置下载:
23https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x804
24
25可以从以下位置查看隐私声明:
26https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804
27
28接受此许可条款吗? [Yes/No]:yes
29
30
31选择 SQL Server 的语言:
32(1) English
33(2) Deutsch
34(3) Español
35(4) Français
36(5) Italiano
37(6) 日本語
38(7) 한국어
39(8) Português
40(9) Руѝѝкий
41(10) 中文 – 简体
42(11) 中文 (繝体)
43输入选项 1-11:10
44输入 SQL Server 系统管理员密码:
45确认 SQL Server 系统管理员密码:
46正在配置 SQL Server...
47
48已成功处理授权 PID。新版本为 [Express Edition]。
49ForceFlush is enabled for this instance.
50ForceFlush feature is enabled for log durability.
51Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service.
52安装程序已成功完成。SQL Server 正在启动。
安装完成后,服务已经开启,并设置为开机启动
查看服务状态
查看服务状态:
sudo service mssql-server status
或者:
systemctl status mssql-server
重启服务:
sudo service mssql-server restart
启动服务:
sudo service mssql-server start
关闭服务:
sudo service mssql-server stop
关闭服务开机启动:
sudo systemctl disable mssql-server
服务开机启动:
sudo systemctl enable mssql-server
安装 SQL Server 命令行工具
若要创建数据库,则需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。
以下两种方式将安装 SQL Server 命令行工具(本文采用第二种,但官方推荐在线安装):sqlcmd 和 bcp。
第一种方式:导入存储库后,在线安装
1# 导入公共存储库 GPG 密钥(如果上面已经导入了,无须再次导入)
2curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
3
4# 注册 Microsoft Ubuntu 存储库。
5对于 Ubuntu 20.04,请使用以下命令:
6curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
7
8# 更新源列表,并使用 unixODBC 开发人员包运行安装命令
9sudo apt-get update
10sudo apt-get install mssql-tools18 unixodbc-dev
11
12# 把sqlserver工具添加到环境变量(可选)
13echo 'export PATH=$PATH:/opt/mssql-tools18/bin' >> /etc/profile
第二种方式:离线下载,手动安装
下载地址:
- https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/m/mssql-tools18/
- https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/m/msodbcsql18/
1# 安装依赖:
2sudo apt-get update
3sudo apt install unixodbc unixodbc-dev
4
5# 在上面的下载地址中下载 msodbcsql18_18.2.2.1-1_amd64.deb 和 mssql-tools18_18.2.1.1-1_amd64.deb h,然后安装:
6sudo dpkg -i msodbcsql18_18.2.2.1-1_amd64.deb mssql-tools18_18.2.1.1-1_amd64.deb
7
8# 如果安装过程中出错,执行:
9sudo apt --fix-broken install
10
11# 把sqlserver工具添加到环境变量(可选)
12echo 'export PATH=$PATH:/opt/mssql-tools18/bin' >> /etc/profile
使用 sqlcmd 本地连接到新的 SQL Server 实例
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例。
使用 SQL Server 名称 (-S)、用户名 (-U) 和密码 (-P) 的相应参数运行 sqlcmd。
注意:如果驱动版本为ODBC Driver 18 for SQL Server,要加 -C 参数,表示:Trust Server Certificate;否则提示证书校验失败(旧版没有这个问题)
在本教程中,用户进行本地连接,因此服务器名称为 localhost。
用户名为 sa,密码是在安装过程中为 SA 帐户提供的密码。
1sqlcmd -S localhost -U sa -P '<YourPassword>' -C
或者:
1sqlcmd -S localhost -U sa -C
系统将提示输入密码
更新sqlsrv驱动到ODBC Driver 18 for SQL Server后,产生TLS加密的问题
更新sqlsrv驱动到ODBC Driver 18 for SQL Server后,产生TLS加密的问题,问题如下:
SQLSTATE[08001]: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:self signed certificate]
原因:该问题由SSL使用TLS加密通讯引起的证书问题,与代码无关(使用旧版的17驱动没有问题)。
解决办法:如果是使用\PDO连接,在连接的DSN信息增加TrustServerCertificate=1,Encrypt=1即可,在options增加无效。
例如:sqlsrv:Server=IP,端口;Database=dbname;TrustServerCertificate=1;Encrypt=1
sqlserver 简单操作
以下皆在 sqlcmd 命令提示符中操作:
1-- 创建一个名为 test 的新数据库:
2CREATE DATABASE test;
3
4
5-- 查询服务器上所有数据库的名称:
6SELECT Name from sys.databases;
7
8-- 前两个命令没有立即执行。必须在新行中键入 GO 才能执行以前的命令(go后面不能加分号):
9GO
10
11-- 将上下文切换到新的 test 数据库:
12USE test;
13
14-- 创建名为 dbo.Inventory 的表:
15CREATE TABLE dbo.Inventory (id bigint NOT NULL primary key identity(1, 1), name NVARCHAR(50), quantity INT);
16-- 插入两行数据:
17INSERT INTO dbo.Inventory VALUES (1, 'banana', 150);
18INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);
19-- 执行上述命令(go后面不能加分号):
20GO
21
22-- 查询dbo.Inventory 表中数量大于 152 的数据:
23SELECT * FROM dbo.Inventory WHERE quantity > 152;
24
25-- 执行查询命令:
26GO
使用 Navicat Premium 16 连接 SQL server
如果在连接过程中出现如下错误:
[IM002] [Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序(0)
先进入 Navicat Premium 16 安装目录,找到 msodbcsql_64.msi ,安装成功后重试。
评论