有客戶使用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 ! :-)