微软于 2017-10-3 正式发布了 SQL Server 2017 正式版,该版本也是第一个支持 Linux 的 SQL Server。我在第一时间查看了微软的官方文档,按照其中的步骤正常的安装了该数据库。但该文档的中文版可能是基于机器翻译,而且没有置入相关运行界面提示和运行结果,而且其中有很多跳来跳去的链接,少数地方输入错误,所以对于 Linux 和 SQL Server 不是很熟悉的人来说有点晦涩。 微软的官方文档: 安装 SQL Server 和 Red Hat 上创建数据库
因此,我在这里就我安装的过程和结果写一篇相对来说比较直观的文章来指导大家在 CentOS 7 上安装使用 SQL Server 2017。
CentOS7.3 以上,我目前用的是 CenOS7.4 服务器至少 3.25GB 内存 好像对 CPU 没有什么要求,我在虚拟机中配置的 CPU 为一核
2、运行以下命令,安装 SQL Server:
- [root@CentOS7 ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
3、运行包安装完成后 mssql-conf 安装并按照提示操作以设置 SA 密码,并选择你的版本。
- [root@CentOS7 ~]# yum update
- [root@CentOS7 ~]# yum install -y mssql-server
- root@CentOS7 ~]# /opt/mssql/bin/mssql-conf setup
- 选择 SQL Server 的一个版本:
- 1) Evaluation (免费,无生产许可,180 天限制)
- 2) Developer (免费,无生产许可)
- 3) Express (免费)
- 4) web (付费版)
- 5) Standard (付费版)
- 6) Enterprise (付费版)
- 7) Enterprise Core (付费版)
- 8) 我通过零售渠道购买了许可证并具有要输入的产品密钥。
- 可在以下位置找到有关版本的详细信息:
- https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x804
- 使用此软件的付费版本需要通过以下途径获取单独授权
- Microsoft 批量许可计划。
- 选择付费版本即表示你具有适用的
- 要安装和运行此软件的就地许可证数量。
- 输入版本(1-8): 1
为了测试该版本数据库的全部功能,我这里选择的是 1Evaluation 版本,如果不是为了测试的话,可以选择 2Developer 或者
Express 这二个版本。如果你是购买了正式版序列号的用户,可以根据情况选择 4-8 的各个版本。然后系统会提示你是否同意许可条款,当然输入 yes 了
- 3
下面是选择语言:
- 可以在以下位置找到此产品的许可条款:
- /usr/share/doc/mssql-server 或从以下位置下载:
- https://go.microsoft.com/fwlink/?LinkId=855864&clcid=0x804
- 可以从以下位置查看隐私声明:
- https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804
- 接受此许可条款吗? [Yes/No]:yes
- 选择 SQL Server 的语言:
- (1) English
- (2) Deutsch
- (3) Español
- (4) Français
- (5) Italiano
- (6) 日本語
- (7) 한국어
- (8) Português
- (9) Русский
- (10) 中文 – 简体
- (11) 中文 (繁体)
- 输入选项 1-11:10
这个不用说了吧,选择
- 10
接下来设置 SQL 密码,输入二次。 请确保为 SA 帐户指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字和 / 或非字母数字符号):
在安装的最后,系统会提示如下:
- 输入 SQL Server 系统管理员密码:
- 确认 SQL Server 系统管理员密码:
4、配置完成后,请验证服务是否正在运行:
- 正在配置 SQL Server...
- Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
- 安装程序已成功完成。SQL Server 正在启动。
- [root@CentOS7 ~]# systemctl status mssql-server
- ● mssql-server.service - Microsoft SQL Server Database Engine
- Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
- Active: active (running) since 四 2017-10-05 14:19:18 CST; 21s ago
- Docs: https://docs.microsoft.com/en-us/sql/linux
- Main PID: 1208 (sqlservr)
- CGroup: /system.slice/mssql-server.service
- ├─1208 /opt/mssql/bin/sqlservr
- └─1228 /opt/mssql/bin/sqlservr
- ............
- (以下进行省略)
如果运行结果如上(●正常是绿颜色的)就是服务正常运行了。 5、若要允许远程连接,请打开防火墙上的 SQL Server 端口。默认的 SQL Server 端口为 TCP 1433。 如果你使用 FirewallD 防火墙,可以使用以下命令添加规则:
- [root@CentOS7 ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
- success
- [root@CentOS7 ~]# firewall-cmd --reload
- success
当然如果你的服务器前端是有防火墙进行保护的,也可以不用运行上述命令,而是直接将系统的防火墙关闭。使用如下命令关闭 firewallD 防火墙并设置为开机不自动启动:
以上就完成了 SQL Server 2017 的安装
- [root@CentOS7 ~]# systemctl stop firewalld
- [root@CentOS7 ~]# systemctl disable firewalld
- Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.
- Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
以下步骤安装 SQL Server 命令行工具: sqlcmd 和 bcp。
1、下载安装源。2、安装 mssql 工具与 unixODBC 开发人员包
- [root@CentOS7 ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
- [root@CentOS7 ~]# yum update
- [root@CentOS7 ~]# yum install -y mssql-tools unixODBC-devel
安装之前系统会提示你必须同意相关许可,注意:需要输入大写的 YES
3、添加 / opt/mssql-tools/bin / 到环境变量
- The license terms for this product can be downloaded from
- https://aka.ms/odbc131eula and found in
- /usr/share/doc/msodbcsql/LICENSE.TXT . By entering 'YES',
- you indicate that you accept the license terms.
- Do you accept the license terms? (Enter YES or NO)
- YES
- 正在安装 : msodbcsql-13.1.9.1-1.x86_64 3/5
- The license terms for this product can be downloaded from
- http://go.microsoft.com/fwlink/?LinkId=746949 and found in
- /usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES',
- you indicate that you accept the license terms.
- Do you accept the license terms? (Enter YES or NO)
- YES
- .............
- (以下进行省略)
- [root@CentOS7 ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
- [root@CentOS7 ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
- [root@CentOS7 ~]# source ~/.bashrc
但使用 - P 参数存在安全性问题,可以不输入 - P 及其后面的部分,而直接输入如下命令:
- [root@CentOS7~]#sqlcmd - S localhost - U SA - P '<YourPassword>'
- [root@CentOS7 ~]# sqlcmd -S localhost -U SA
- Password:
这时系统会提示你输入 sa 密码,输入后回车
2、如果成功,应会显示 sqlcmd 命令提示符:1>
- > create database TestDB
- > select name from sys.Databases
- > go
运行结果如下:
- name
- --------------------------------------------------------------------------------------------------------------------------------
- master
- tempdb
- model
- msdb
- TestDB
- (5 rows affected)
2、插入数据 接下来创建一个新表 Inventory,然后插入两个新行。
3、选择数据
- 1> use testdb
- 2> go
- 已将数据库上下文更改为 "TestDB"。
- 1> create table Inventory(id int, name nvarchar(50), quantity int)
- 2> go
- 1> insert into inventory values(1,'banana',150);
- 2> insert into inventory values(2,'orange',154);
- 3> go
- (1 rows affected)
- (1 rows affected)
4、退出 sqlcmd 命令提示符 1> quit
- 1> select * from inventory
- 2> go
- id name quantity
- ----------- -------------------------------------------------- -----------
- 1 banana 150
- 2 orange 154
- (2 rows affected)
从 Windows 连接到已经安装的 SQL Server 的话,需要安装 SQL Server Management Studio (SSMS)。 官方文档里说安装完成 SSMS 后就可以使用 powershell 从命令行进行远程连接,但我始终没有办法 import 相关模块,再说如果需要安装 SSMS 的话,谁还会使用 Powershell 啊。
可以到 微软官方下载页面 中下载 SSMS,也可以直接使用下面这个链接: https://download.microsoft.com/download/C/3/D/C3DBFF11-C72E-429A-A861-4C316524368F/SSMS-Setup-CHS.exe 安装文件大约 800MB,下载完成直接安装即可。
运行 SQL 命令可以参照在本地命令行中使用 sqlcmd 运行的相关命令。运行结果如下图:
运行如下命令:
- [root@CentOS7~]#yum update mssql - server
执行如下命令:
- [root@CentOS7~]#yum remove mssql - server
删除包不会删除生成的数据库文件。 如果你想要删除的数据库文件,使用以下命令:
- [root@CentOS7 ~]# rm -rf /var/opt/mssql/
1、下载 rpm 包: Microsoft 存储库下载目录: https://packages.microsoft.com/sles/12/mssql-server-2017/ 执行如下命令下载安装包:
2、解决依赖关系:
- [root@CentOS7 ~]# wget https://packages.microsoft.com/sles/12/mssql-server-2017/mssql-server-14.0.1000.169-2.x86_64.rpm
3、安装数据库引擎:
- [root@CentOS7~]#rpm - qpR mssql - server_versionnumber.x86_64.rpm
- [root@CentOS7~]#yum localinstall mssql - server_versionnumber.x86_64.rpm
或者:
- [root@CentOS7~]#rpm - ivh mssql - server_versionnumber.x86_64.rpm
使用 rpm -ivh 命令可以最大程序的解决依赖关系问题。
4、使用 mssql-conf 完成 SQL Server 安装:
- [root@CentOS7~]# / opt / mssql / bin / mssql - conf setup
剩下的步骤就和在线安装是一样的了。
其他相关文档: 针对 Redhat 的无人执守安装脚本
来源: http://www.linuxidc.com/Linux/2017-12/149609.htm