SQL Server也能部署在Linux环境?SQL Server 2019在CentOS7部署详解
数据库 SQL Server
我们知道SQL Server是微软公司推出的重要的数据库产品,通常情况下只支持部署在windows平台上。不过令人感到兴奋的是,从SQL Server 2017开始支持 linux系统。

概述

我们知道SQL Server是微软公司推出的重要的数据库产品,通常情况下只支持部署在Windows平台上。不过令人感到兴奋的是,从SQL Server 2017开始支持 Linux系统。此 SQL Server 版本与运行在 Microsoft 操作系统上的 SQL Server 数据库引擎相同,具有许多相似的功能和服务。下面分享一下CentOS 7 上安装 Microsoft SQL Server 2019 的步骤。

安装过程

Step1:在 CentOS 7 上安装 Microsoft SQL Server 2019

添加SQL Server 2019 镜像仓库

Microsoft SQL Server 2019 可供一般用途使用。通过在终端上运行以下命令,将存储库添加到 CentOS 7。

  1. sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo 

这会将 SQL Server 2019 存储库下载到 /etc/yum.repos.d/mssql-server.repo

更新你的系统缓存

  1. sudo yum makecache  # CentOS 7 

安装SQL Server 2019

  1. sudo yum install -y mssql-server 

要获取有关已安装软件包的信息,请运行:

  1. [root@test ~]# rpm -qi mssql-server 
  2. Name        : mssql-server 
  3. Version     : 15.0.4178.1 
  4. Release     : 3 
  5. Architecture: x86_64 
  6. Install Date: Fri 29 Oct 2021 02:15:59 PM CST 
  7. Group       : Unspecified 
  8. Size        : 1213647503 
  9. License     : Commercial 
  10. Signature   : RSA/SHA256, Wed 29 Sep 2021 01:09:50 AM CST, Key ID eb3e94adbe1229cf 
  11. Source RPM  : mssql-server-15.0.4178.1-3.src.rpm 
  12. Build Date  : Tue 28 Sep 2021 01:50:37 PM CST 
  13. Build Host  : hls-build-pipeline-ub2-prod-build-cent73-02 
  14. Relocations : (not relocatable) 
  15. Summary     : Microsoft SQL Server Relational Database Engine 
  16. Description : 
  17. The mssql-server package contains the Microsoft SQL Server Relational Database Engine. 

 Step 2:初始化 MS SQL 数据库引擎

软件包安装完成后,运行 mssql-conf setup 并按照提示设置 SA 密码并选择您的版本。

  1. sudo /opt/mssql/bin/mssql-conf setup 

选择你要使用的版本

  1. Choose an edition of SQL Server: 
  2.   1) Evaluation (freeno production use rights, 180-day limit) 
  3.   2) Developer (freeno production use rights) 
  4.   3) Express (free
  5.   4) Web (PAID) 
  6.   5) Standard (PAID) 
  7.   6) Enterprise (PAID) 
  8.   7) Enterprise Core (PAID) 
  9.   8) I bought a license through a retail sales channel and have a product key to enter. 

 我会选择 2 – Developer(免费)。

接受许可条款

  1. The license terms for this product can be found in 
  2. /usr/share/doc/mssql-server or downloaded from
  3. https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409 
  4.  
  5. The privacy statement can be viewed at
  6. https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409 
  7.  
  8. Do you accept the license terms? [Yes/No]:Yes 

 设置 SQL Server 系统管理员密码

  1. Enter the SQL Server system administrator password: <Password
  2. Confirm the SQL Server system administrator password:<Confirm Password
  3. Configuring SQL Server... 
  4.  
  5. sqlservr: This program requires a machine with at least 2000 megabytes of memory. 
  6. /opt/mssql/bin/sqlservr: This program requires a machine with at least 2000 megabytes of memory. 
  7.  
  8. Initial setup of Microsoft SQL Server failed. Please consult the ERRORLOG 
  9. in /var/opt/mssql/log for more information. 

step3:安装 SQL Server 命令行工具

然后使用 unixODBC 开发包安装 mssql-tools。

  1. sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo 
  2. sudo yum -y install mssql-tools unixODBC-devel 

step 4:启动并启用 mssql-server 服务

启动 mssql-server 服务

  1. sudo systemctl start mssql-server 

设置系统启动时自动启动

  1. sudo systemctl enable mssql-server 

添加/opt/mssql/bin/ 到您的 $PATH 变量:

  1. echo 'export PATH=$PATH:/opt/mssql/bin:/opt/mssql-tools/bin' | sudo tee /etc/profile.d/mssql.sh 

获取文件以在当前 shell 会话中开始使用 MS SQL 可执行二进制文件

  1. source /etc/profile.d/mssql.sh 

如果您有活动的 Firewalld 服务,请允许远程主机的 SQL Server 端口连接:

  1. sudo  firewall-cmd --add-port=1433/tcp --permanent 
  2. sudo  firewall-cmd --reload 

Step5:测试 SQL Server

连接到 SQL Server 并验证它是否正常工作。

  1. $ sqlcmd -S localhost -U SA 

使用步骤 2 中设置的密码进行身份验证。

显示数据库用户:

  1. 1> select name from sysusers; 
  2. 2> go 

创建测试数据库:

  1. Create new 
  2. CREATE DATABASE mytestDB 
  3. SELECT Name from sys.Databases 
  4. GO 
  5. USE mytestDB 
  6. CREATE TABLE Inventory (id INTname NVARCHAR(50), quantity INT
  7. INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154); 
  8. GO 
  9. SELECT * FROM Inventory LIMIT 1; 

显示 SQL Server 上的数据库。

  1. 1> select name,database_id from sys.databases; 
  2. 2> go 

删除数据库:

  1. 1> drop database testDB; 
  2. 2> go 

部署管理工具 Azure Data Studio

  1. [root@test ~]# cd /usr/local/src 
  2. [root@test src]# wget https://azuredatastudiobuilds.blob.core.windows.net/releases/1.13.0/azuredatastudio-linux-1.13.0.tar.gz 
  3.   
  4. [root@test src]# tar -xvf ./azuredatastudio-linux-1.13.0.tar.gz -C /usr/local 
  5. [root@test src]# cd ../ 
  6. [root@test local]# echo 'export PATH="$PATH:/usr/local/azuredatastudio-linux-x64"' >> ~/.bashrc 
  7. [root@test local]# source ~/.bashrc 
  8.   
  9. # 启动图形化数据库操作界面 
  10. [root@test local]# azuredatastudio 
  11.   
  12. # 配置非root用户使用 
  13. [root@test local]# exit 
  14. [gjp@test local]# echo 'export PATH="$PATH:/usr/local/azuredatastudio-linux-x64"' >> ~/.bashrc 
  15. [test@test local]# source ~/.bashrc 
  16.   
  17. # 此处需要安装 libXScrnSaver 依赖 否则会报找不到 libgtk-3.so.0 
  18. [root@test local]# yum install libXScrnSaver 
  19.   
  20. # 注意 此处使用的是图形化安装的CentOS7 
  21. [test@test local]# azuredatastudio 
  22.   
  23.   
  24. # windows访问时记得关闭防火墙 
  25. [root@test ~]# systemctl stop firewalld 
  26. [root@test ~]# systemctl disable firewalld 

总结

如果你厌倦了在Windows上部署SQL Server,也许你可以尝试在Linux平台上部署,Linux平台上SQL Server,能带给你不一样的体验。

责任编辑:姜华 来源: 今日头条

编辑推荐

SQL编程之高级查询及注意事项SQL Server性能调优方法论与常用工具【SQL Server 2016动态数据屏蔽入门】Azure SQL 数据库V12版的动态数据屏蔽【SQL Server 2016动态数据屏蔽入门】定义屏蔽巧用这19条MySQL优化,效率至少提高3倍
我收藏的内容
点赞
收藏

51CTO技术栈视频号