先决条件

您必须具有至少2 GB内存的计算机。

如果使用CENTOS 、请使用CENTOS 7的版本。CENTOS6.9 安装的话,会出现错误。

如果您以前安装了SQL Server 2017的CTP或RC版本,则必须先删除旧存储库,然后再执行这些步骤。

可以使用命令:cat etc/redhat-release  来查看系统发行版本 设置对应的yum 源

 

 1.1 下载阿里云在线yum源到本地

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

这里注意 centos-8 , 要对应linux的版本否则yum 安装有可能提示找不到

1.2 下载微软官方的sqlserver源到本地

wget -O /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

1.3 安装mssql-server(SQL Server软件包)

yum install -y mssql-server

报错: 

报错没解决,改用下面方法,安装python2的过程

sudo yum -y install python2 compat-openssl10

sudo alternatives --set python /usr/bin/python2

sudo yum download mssql-server

sudo rpm -Uvh --nodeps mssql-server*rpm 

原文:centos安装sqlserver 2017 时遇到的nothing provides python needed by mssql-server问题的解决方法_寻找幸福の佳佳酱的博客-CSDN博客

alternatives --config python #选择版本

接下来就是要指定安装哪一个版本了,但是如果机器空闲内存低于2G的话,请继续按照以下步骤,否则,直接进行第三部分

Linux 安装 SQL server 提示This program requires a machine with at least 2000 megabytes of memory

破解内存限制

2.1 首先切换到 /opt/mssql/bin 目录下

cd /opt/mssql/bin/

2.2 然后保存备份文件

mv sqlservr sqlservr.old

2.3 使用python修改二进制文件,把里面的2G内存限制改为512M

python 

oldfile = open("sqlservr.old", "rb").read()

newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e")

open("sqlservr", "wb").write(newfile)

exit()

3.1 选择想要安装的sql server版本,以及设置SA用户密码

/opt/mssql/bin/mssql-conf setup

此处需要注意提示,选择版本信息及设置SA密码,由于我们是测试,所以可以选择1、2、3。我们在Enter your edition(1-8): 输入2 后回车。隐私&许可,输入YES。然后输入SA密码

输入数字,选择所要安装的版本,然后在出现询问是否接受许可条款时,输入yes,回车继续下一步。

 到了这一步的时候,输入SA用户密码(密码长度八位以上,且密码必须包含数字、字母和特殊字符),注意在输入密码的时候,窗口上是不显示任何字符的,所以输入完之后,直接回车,然后再输入一遍,回车确认。

3.2 运行命令,检查SQL server状态(运行是否有问题)

systemctl status mssql-server

如果出现了如下图这种错误:

 在启动SQL server引擎的时候出现了错误。

关于这个的解决方案就是,我们需要设置一下 /opt/mssql/bin/sqlservr 目录的权限,让SQL server可以访问

cd /opt/mssql/bin/

chmod 777 sqlservr

这次权限分配完成,接着重新输入命令,再次安装

/opt/mssql/bin/mssql-conf setup

安装完成之后,再次检查SQL server的状态

systemctl status mssql-server

出现如下图界面,则表示已安装成功

 3.1 设置防火墙,开启远程连接

firewall-cmd --zone=public --add-port=1433/tcp --permanent

firewall-cmd --reload

如果执行上述命令的时候,出现这种错误

 则表示防火墙未开启,这种情况可以跳过防火墙设置,直接进行下一步

安装sqlserver命令行工具

4.1 下载微软官方的软件包yum源

wget -O  /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

4.2 如果以前装过mssql,则需要删除较旧的UnixODBC软件包

yum remove unixODBC-utf16 unixODBC-utf16-devel 

4.3 安装mssql工具包和UnixODBC开发人员软件包(这一步命令会出现两次询问:是否接受许可条款,都输入yes,回车确定)

yum install -y mssql-tools unixODBC-devel 

4.4 添加PATH环境变量

echo "export PATH=$PATH:/opt/mssql-tools/bin" >> /etc/profile

source /etc/profile

4.5 使用sqlcmd命令连接本地的sqlserver,输入之前设置的SA密码

sqlcmd -S localhost -U SA -p

 出现这个界面,表示登录成功,然后我们可以开始写SQL命令。

首先我们先执行一句SQL语句,创建一个测试数据库,检测是否有效。

CREATE DATABASE [Test]

GO

SELECT [Name] FROM SYS.DATABASES

GO

 5.1 打开本地windows端的SSMS,远程连接CentOS中的SQL Server

 

 

参考:

centos7.x中安装SQL Server - 吕小不 - 博客园

【SQL Server on Linux】Linux下安装SQL Server - 墨天轮

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐