练习环境:centos7,内存2G以上

安装步骤

1.1:设置sqlserver安装镜像:(不同的linux版本要找对应的sqlserver数据库版本,不然会有问题)

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

1.2:镜像下载完成后,执行安装

1
yum install -y mssql-server

1.2.1:如果你环境比较干净,可能还要手动安装一下yum(看自己版本,-7 -8要对应,不然用不了)

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

1.3:安装完后,会提示让你执行代码,配置一下数据库

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

1.4:配置完后会自动运行数据库服务,也可以手动查看

1.4.1:如果安装失败的话,提示你…Error: /lib64/libm.so.6: version `GLIBC_2.27’ not found… 之类的,那就是你还要升级一下你的环境:glibc-2.28
但是这个东西很麻烦,没遇到最好,遇到了的话,这里也贴一下解决办法解决办法
点进去按这个操作就可以了(至少我是这么解决的)

1
systemctl status mssql-server --查看数据库状态

1.5:如果你服务器开启了防火墙,可能还要配置一下防火墙端口(我本地练习是直接关了防火墙的,所以没试过)

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

到这里如果都没问题的话,数据库就可以用工具远程连接和访问了。
但是
如果要在linux系统中用终端操作,还需要单独安装工具,才能使用sqlcmd

安装命令行工具

安装

1
2
3
4
5
6
wget https://packages.microsoft.com/rhel/7.3/prod/msodbcsql-13.1.6.0-1.x86_64.rpm
wget https://packages.microsoft.com/rhel/7.3/prod/mssql-tools-14.0.5.0-1.x86_64.rpm

yum localinstall msodbcsql-13.1.6.0-1.x86_64.rpm
yum localinstall mssql-tools-14.0.5.0-1.x86_64.rpm
echo 'export PATH="path:/opt/mssql-tools/bin"' #添加环境变量

安装

1
2
3
4
5
6
7
8
9
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
yum install mssql-tools unixODBC-devel

vim /etc/profile.d/mssqltools.sh
#输入内容:
export PATH=$PATH:/opt/mssql-tools/bin/
#写完按一下Esc,然后再按Shift+: 输入wq ,这样文件才会保存并退出
#然后 source一下
source /etc/profile.d/mssqltools.sh

到这,sqlcmd就可以用了,比如你要从本地备份数据库,然后还原到linux的sqlserver数据库上。

现在本地备份sqlserver数据库,然后把bak文件复制到linux的…/mssql/data 文件夹里,因为默认备份和数据库文件都在这个里面,如果要变更备份文件路径的话,请自行百度。
然后用sqlcmd连接数据库,还原数据库

还原数据库

登录sa账号

1
sqlcmd -S localhost -U SA

输入密码后,会进入t-sql状态,一行行复制然后最后GO换行后,会执行

1
2
3
4
5
RESTORE DATABASE YourDB
FROM DISK = '/var/opt/mssql/backup/YourDB.bak'
WITH MOVE 'YourDB' TO '/var/opt/mssql/data/YourDB.mdf',
MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf'
GO

SQL Server数据库的备份恢复以及新建数据库和访问用户参见 SQL Server 基础命令及报错汇总