有客户使用Linux服务器,SQL Server从2017开始已支持Linux,从未用过,今天测试了一下,比较简单,记录一下。sql
Linux:CentOS 7.0数据库
首先更新源:windows
curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repobash
而后安装:服务器
yum install -y mssql-servercurl
安装完后配置:tcp
/opt/mssql/bin/mssql-conf setup工具
好了,就这么简单!测试
而后测试从windows sql server 2008 R2迁移至Linux SQL Server 2017下。ui
首先在windows下备份数据库,好比是a.bak,将备份文件上传至Linux。Linux默认数据路径是/var/opt/mssql/data。而后在Linux下运行命令:
RESTORE DATABASE newdbname FROM DISK = '/var/opt/mssql/data/a.bak' WITH MOVE 'db1' TO '/var/opt/mssql/data/newdb.mdf', MOVE 'db1_log' TO '/var/opt/mssql/data/newdb_log.ldf', STATS = 1, REPLACE, RECOVERY
此处注意,newdbname为新建立的数据库名字,而db1和db2_log为原数据库中的逻辑数据文件的名字。
设置防火墙:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload
CentOS7防火墙相关命令:
//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
恢复成功,而后能够用SSMS或navicat或Azure Data Studio等工具正常链接数据库使用了。
安装mssql-tools:
添加源:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
安装:
yum install mssql-tools unixODBC-devel
添加登陆会话访问路径:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
source ~/.bash_profile
交互式/非登陆会话:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
整体很简单,很Microsoft ! :-)