Linux系統(centos7.6)安裝sql server 2017 for linux
廣告:
官方安裝說明:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sql-server-ver15
脫機安裝:https://packages.microsoft.com
https://packages.microsoft.com/yumrepos/mssql-server-2017-rhel7/ (實驗環境最低配置:centos 7 1核cpu 2G內存 )
mssql-server-14.0.3238.1-19.x86_64.rpm (要下載的包)
mssql-server-fts-14.0.3238.1-19.x86_64.rpm (帶有全文索引的包)
下載包:https://packages.microsoft.com/yumrepos/mssql-server-2017-rhel7/mssql-server-14.0.3238.1-19.x86_64.rpm (2019.11.8更新)
一、用WinSCP上傳壓縮包到/usr/src/目錄下面,然后用putty軟件登錄控制臺運行(最好在服務器控制臺輸入命令,用putty可能看不到安裝狀態,一般等20分鐘左右):
cd /usr/src/ sudo yum localinstall mssql-server-14.0.3238.1-19.x86_64.rpm
刪除已安裝的rpm包:
rpm -qa | grep -i mssql (查詢)
rpm -e 文件名 (如:rpm -e mssql-server-14.0.3238.1-19.x86_64)
列出依賴項命令:rpm -qpR mssql-server-14.0.3238.1-19.x86_64.rpm
解決缺少的依賴項后,嘗試再次安裝 mssql-server 包。
安裝完成:
systemctl restart mssql-server.service
二、完成 SQL Server 安裝。 使用“mssql-conf”完成 SQL Server 安裝 :
sudo /opt/mssql/bin/mssql-conf setup
(包安裝完成后,運行 mssql-conf setup,按照提示設置 SA 密碼并選擇版本 以下 SQL Server 2017 版本是免費提供許可的:Evaluation、Developer 和 Express 版。)
版本選3 ,語言選 10
安裝完成信息:
選擇 SQL Server 的語言:
(1) English
(2) Deutsch
(3) Español
(4) Français
(5) Italiano
(6) 日本語
(7) 한국어
(8) Português
(9) Русский
(10) 中文 – 簡體
(11) 中文 (繁體)
輸入選項 1-11:10
輸入 SQL Server 系統管理員密碼: 大小寫字母+數字,至少8位
請確保為 SA 帳戶指定強密碼(最少 8 個字符,包括大寫和小寫字母、十進制數字和/或非字母數字符號)。
正在配置 SQL Server...
/bin/bash: /opt/mssql/bin/sqlservr:
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/l ib/systemd/system/mssql-server.service.
安裝程序已成功完成。SQL Server 正在啟動。
常見錯誤:
1. 內存不夠
sqlservr: This program requires a machine with at least 2000 megabytes of memory.
/opt/mssql/bin/sqlservr: This program requires a machine with at least 2000 megabytes of memory.
安裝sql server 需要2G以上內存:
cd /opt/mssql/bin/ # 進入目錄 mv sqlservr sqlservr.old # 保存備份文件 python # 使用python修改內存限制代碼 oldfile = open("sqlservr.old", "rb").read() newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e") newfile = oldfile.replace("\xff\x93\x35\x77", "\x00\x80\x84\x1e").replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e") open("sqlservr", "wb").write(newfile) exit()
再重新執行:sudo /opt/mssql/bin/mssql-conf setup
(新版2017改為:\xff\x93\x35\x77)
2. 權限不夠執行 :
直接在服務器更改文件夾權限
或者:
cd /opt/mssql/bin/
chmod 0777 sqlservr -v
chmod +x sqlservr -v
后再開啟服務 sudo systemctl restart mssql-server
(sudo -u mssql /opt/mssql/bin/sqlservr -f 最低配置啟動服務---僅為參考)
驗證服務是否運行:systemctl status mssql-server
檢查版本:sqlcmd -S localhost -U SA -Q 'select @@VERSION' (如果尚未安裝,請安裝 SQL Server 命令行工具。)
完成配置后,驗證服務是否運行:
systemctl status mssql-server
默認數據庫位置: /var/opt/mssql/datacd
刪除sql server :RHEL sudo yum remove mssql-server
三、安裝命令行工具:
配置路徑變量:
export PATH=$PATH:/opt/mssql-tools/bin sudo su curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo sudo yum install mssql-tools unixODBC-devel
vi /etc/profile # 最后一行加上以下內容: (最后插入行鍵盤輸入大寫的"G" 鍵盤輸入小寫的"o" 。保存,小寫字母英文輸入狀態:esc后 按 : 號,輸入 wq 保存文件并退出vi ,:w! 強制保存,不推出vi , :q 不保存文件,退出vi,:q! 不保存文件,強制退出vi)
export PATH=$PATH:/opt/mssql-tools/bin
對話框,輸入 y 或者 yes 同意安裝。完成顯示:
四、sqlcmd命令行工具本地連接到sql server,創建數據庫
sqlcmd -S localhost -U SA -P '12345678' /******(連接命令)******/ go CREATE DATABASE TestDB /******創建數據庫 (要先執行連接命令)******/ go DROP DATABASE TestDB /******刪除數據庫: (要先執行連接命令)******/ go SELECT Name from sys.Databases /******查詢所有數據庫 (要先執行連接命令)******/ go exit
附加:
性能內存最佳優化配置:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-performance-best-practices?view=sql-server-2017
Linux-centos系統sqlserver2017賬號sa密碼重置:
1、登陸服務器,停用sqlserver服務,(命令:sudo systemctl stop mssql-server)
2、切換到/opt/mssql/bin/目錄下面(命令:cd /opt/mssql/bin)
3、使用命令查看(命令./mssql-conf -h)
4、使用命令set-sa-password重置密碼(命令./mssql-conf set-sa-password)
5、輸入兩遍密碼,確認。
6、重啟sqlserver服務(命令:sudo systemctl start mssql-server)
修改自增步長自長跳1000
修改/usr/lib/systemd/system/mssql-server.service 文件
ExecStart=/opt/mssql/bin/sqlservr -T272
systemctl daemon-reload
常見錯誤:
1. System.Data.SqlClient.SqlException
The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 13: The parameter name is invalid.
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): Mono SqlClient Data Provider.Exception stack trace:
解決方法:
new SqlParameter("@icp", SqlDbType.VarChar,80) 改成:new SqlParameter("@icp", SqlDbType.NVarChar,80)
SQL_Latin1_General_CP1_CI_AS的排序規則中,添加中文字符需要把參數字段類型 varchar 更改為nvarchar類型。
廣告: