在CentOS7上安装SQL Server 2017

系统需求:

CentOS7.3以上,我目前用的是CenOS7.4
服务器至少3.25GB内存
好像对CPU没有什么要求,我在虚拟机中配置的CPU为一核

一、安装 SQL Server

1、下载 Microsoft SQL Server Red Hat 存储库配置文件:

[root@CentOS7 ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/

2、运行以下命令,安装 SQL Server:

[root@CentOS7 ~]# yum update
[root@CentOS7 ~]# yum install -y mssql-server

3、运行包安装完成后mssql-conf 安装并按照提示操作以设置 SA 密码,并选择你的版本。

复制代码
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 或者 3 Express这二个版本。如果你是购买了正式版序列号的用户,可以根据情况选择4-8的各个版本。

然后系统会提示你是否同意许可条款,当然输入yes了 

可以在以下位置找到此产品的许可条款:
/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 系统管理员密码:123456
确认 SQL Server 系统管理员密码:123456

在安装的最后,系统会提示如下:

正在配置 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 正在启动。

4、配置完成后,请验证服务是否正在运行:

复制代码
[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防火墙并设置为开机不自动启动:

[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 2017的安装

转移存储位置:

  1. 可以通过客户端进行链接数据点击属性=>数据库设置查看数据库默认位置/var/opt/mssql/data
  2. 新建目录
     mkdir -p /home/mssql/data
  3. 运行以下命令以更改此目录的所有者
  4. #Run below命令将此目录的所有者和组更改为用户“mssql”

    sudo chown mssql /home/mssql/data
    
    sudo chgrp mssql /home/mssql/data
    
    sudo chown mssql /home/mssql/log
    
    sudo chgrp mssql /home/mssql/log

     

  5. 现在通过下面的命令执行这个脚本,将默认的数据库文件位置更改为/home/mssql/data
  6. sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /home/mssql/data
    
    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /home/mssql/log
  7. 重启数据库
  8. systemctl restart mssql-server

    同时把之前的数据库默认文件转移过来

    参考文章:

  9. https://www.mssqltips.com/sqlservertip/4652/how-to-change-default-data-and-log-file-directory-for-sql-server-running-on-linux/
  10. https://www.sqlshack.com/configure-sql-server-2017-linux-mssql-conf-available-tools/

 

二、安装 SQL Server 命令行工具

以下步骤安装 SQL Server 命令行工具: sqlcmd和bcp。

1、下载安装源。

[root@CentOS7 ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

2、安装mssql 工具与 unixODBC 开发人员包

[root@CentOS7 ~]# yum update
[root@CentOS7 ~]# yum install -y mssql-tools unixODBC-devel

安装之前系统会提示你必须同意相关许可,注意:需要输入大写的YES

复制代码
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
.............
(以下进行省略)
复制代码

3、添加/opt/mssql-tools/bin/到环境变量

[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

三、使用sqlcmd进行本地连接

1、使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd:

[root@CentOS7 ~]# sqlcmd -S localhost -U SA -P '<YourPassword>'

但使用-P参数存在安全性问题,可以不输入-P及其后面的部分,而直接输入如下命令:

[root@CentOS7 ~]# sqlcmd -S localhost -U SA
Password:

这时系统会提示你输入sa密码,输入后回车

2、如果成功,应会显示 sqlcmd 命令提示符:1>

四、创建和查询数据

1、新建数据库:

1> create database TestDB
2> select name from sys.Databases
3> go

运行结果如下:

复制代码
name                                                                                 
--------------------------------------------------------------------------------------------------------------------------------
master                                                                               
tempdb                                                                               
model                                                                                
msdb                                                                                 
TestDB                                                                               

(5 rows affected)
复制代码

2、插入数据

复制代码
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)
复制代码

3、选择数据

1> select * from inventory
2> go
id          name                                               quantity
----------- -------------------------------------------------- -----------
          1 banana                                                     150
          2 orange                                                     154

(2 rows affected)

4、退出 sqlcmd 命令提示符

1> quit

五、从 Windows 进行连接

从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运行的相关命令。运行结果如下图:
————————————————
版权声明:本文为CSDN博主「cmzsteven」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cmzsteven/article/details/78161516

 

 

 

六、更新SQL Server

运行如下命令:

[root@CentOS7 ~]# yum update mssql-server

七、卸载 SQL Server

执行如下命令:

[root@CentOS7 ~]# yum remove mssql-server

删除包不会删除生成的数据库文件。 如果你想要删除的数据库文件,使用以下命令:

[root@CentOS7 ~]# rm -rf /var/opt/mssql/

八、脱机安装SQL Server

1、下载rpm包:
Microsoft 存储库下载目录:
https://packages.microsoft.com/sles/12/mssql-server-2017/
执行如下命令下载安装包:

[root@CentOS7 ~]# wget https://packages.microsoft.com/sles/12/mssql-server-2017/mssql-server-14.0.1000.169-2.x86_64.rpm

2、解决依赖关系:

[root@CentOS7 ~]# rpm -qpR mssql-server_versionnumber.x86_64.rpm

3、安装数据库引擎:

[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

 

posted @   ParallelForEach  阅读(1320)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示