==================================================================================================
安裝 SQL Server數據庫服務
==================================================================================================
1.更新源
對於 RHEL7:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
對於 RHEL8:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
2.運行以下命令以安裝 SQL Server:
sudo yum install -y mssql-server
3.包安裝完成后,運行 mssql-conf setup,按照提示設置SA密碼並選擇版本。
sudo /opt/mssql/bin/mssql-conf setup
備注:請確保為 SA 帳戶指定強密碼(最少8個字符,包括大寫和小寫字母、十進制數字和/或非字母數字符號)。
4.完成配置后,驗證服務是否正在運行:
systemctl status mssql-server
5.若要允許遠程連接,請在 RHEL 的防火牆上打開 SQL Server 端口。 默認的 SQL Server 端口為 TCP 1433。 如果為防火牆使用的是 FirewallD,則可以使用以下命令:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
==================================================================================================
安裝sqlcmd客戶端命令行連接sqlserver
==================================================================================================
1.添加安裝源
[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
2.安裝mssql-tools和unixODBC包
[root@localhost yum.repos.d]# yum install mssql-tools unixODBC-devel
安裝的時候監聽需要輸入YES,注意大寫
如果安裝了早期版本的mssql-tools,請刪除所有舊的unixODBC包后從新安裝odbc
yum remove unixODBC-utf16 unixODBC-utf16-devel
3.將/opt/mssql-tools/bin/ 添加到 PATH 環境變量
[root@localhost /]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
[root@localhost /]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
[root@localhost /]# cd ~
[root@localhost ~]# source .bashrc
4.sqlcmd連接方式
sqlcmd -S localhost -U SA -P '<YourPassword>' # 本地服務用命令行連接
[root@k8s-single ~]# sqlcmd -S 172.16.100.9 -U inf_erp1 -P inf_erp1 # 遠程用命令行連接
如果以后決定進行遠程連接,請指定 -S 參數的計算機名稱或 IP 地址,並確保防火牆上的端口 1433 已打開。
查詢系統時間
>SELECT SYSDATETIME()
>go
(1) 看當前數據庫列表
> SELECT Name from sys.Databases
> go
(2) 建庫
> create database Inventory
> go
(3) 創建表
> CREATE TABLE Inventory_tab (id INT, name NVARCHAR(50), quantity INT)
(4) 將數據插入新表:
> INSERT INTO Inventory_tab VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
> go
(5) 看當前數據表
> use 庫名
> select * from sysobjects where xtype='u'
> go
(6) 看表的內容
> select * from 表名;
> go
> QUIT
==================================================================================================
各系統安裝sqlcmd工具方式:
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup-tools?view=sql-server-ver15
==================================================================================================
在 RHEL 8上安裝工具
1.進入超級用戶模式。
sudo su
下載 Microsoft Red Hat 存儲庫配置文件。
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/msprod.repo
退出超級用戶模式。
exit
2.如果安裝了早期版本的 mssql-tools,請刪除所有舊的 unixODBC 包。
sudo yum remove mssql-tools unixODBC-utf16-devel
運行以下命令,以使用 unixODBC 開發人員包安裝 mssql-tools。
sudo yum install mssql-tools unixODBC-devel
3.若要將 mssql-tools 更新至最新版本,請運行以下命令:
sudo yum check-update
sudo yum update mssql-tools
4.可選:向bash shell中的 PATH 環境變量添加 /opt/mssql-tools/bin/。
要使sqlcmd/bcp 能從登陸會話的 bash shell 進行訪問,請使用下列命令修改 ~/.bash_profile 文件中的 PATH :
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
要使sqlcmd/bcp 能從交互式/非登錄會話的 bash shell 進行訪問,請使用下列命令修改 ~/.bashrc 文件中的 PATH :
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
==================================================================================================
在Ubuntu 16.04上安裝工具
備注:
從 SQL Server 2019 CU3 開始,支持 Ubuntu 18.04。
自 SQL Server 2019 CU10 起,開始支持 Ubuntu 20.04。
如果你使用的是 Ubuntu 18.04 或 Ubuntu 20.04,請將下面步驟 2 中的存儲庫路徑從/ubuntu/16.04 更改為/ubuntu/18.04 或/ubuntu/20.04。
1.導入公共存儲庫 GPG 密鑰。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
注冊 Microsoft Ubuntu 存儲庫。
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
2.更新源列表,並使用 unixODBC 開發人員包運行安裝命令。
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev
3.若要將 mssql-tools 更新至最新版本,請運行以下命令:
sudo apt-get update
sudo apt-get install mssql-tools
4.向bash shell中的PATH環境變量添加/opt/mssql-tools/bin/。
要使 sqlcmd/bcp 能從登陸會話的 bash shell 進行訪問,請使用下列命令修改 ~/.bash_profile 文件中的 PATH :
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
要使 sqlcmd/bcp 能從交互式/非登錄會話的 bash shell 進行訪問,請使用下列命令修改 ~/.bashrc 文件中的 PATH :
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
==================================================================================================
在SLES 12上安裝工具
1.將 Microsoft SQL Server 存儲庫添加到 Zypper。
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/prod.repo
sudo zypper --gpg-auto-import-keys refresh
2.使用 unixODBC 開發人員包安裝 mssql-tools。
sudo zypper install mssql-tools unixODBC-devel
3.若要將 mssql-tools 更新至最新版本,請運行以下命令:
sudo zypper refresh
sudo zypper update mssql-tools
4.向 bash shell 中的 PATH 環境變量添加 /opt/mssql-tools/bin/。
要使 sqlcmd/bcp 能從登陸會話的 bash shell 進行訪問,請使用下列命令修改 ~/.bash_profile 文件中的 PATH :
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
要使 sqlcmd/bcp 能從交互式/非登錄會話的 bash shell 進行訪問,請使用下列命令修改 ~/.bashrc 文件中的 PATH :
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
==================================================================================================
Docker
如果在 Docker 容器中運行 SQL Server,則 SQL Server 命令行工具已包含在 SQL Server Linux 容器映像中。
如果使用交互式 bash shell 附加到正在運行的容器,則可以在本地運行這些工具。
脫機安裝
如果 Linux 計算機不能訪問之前部分中使用的在線存儲庫,則可以直接下載包文件。
這些包位於 Microsoft 存儲庫中,網址為 https://packages.microsoft.com。
提示:
如果通過之前部分中的步驟成功安裝了包,則無需下載或者手動安裝以下包。這僅適用於脫機的情況。
首先,找到並復制適用於你的 Linux 分發版的 mssql-tools 包:
Linux 分發版 mssql-tools 包位置
Red Hat https://packages.microsoft.com/rhel/7.3/prod
SLES https://packages.microsoft.com/sles/12/prod
Ubuntu 16.04 https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/mssql-tools
此外,找到並復制 msodbcsql 包,它是一個依賴項。 msodbcsql 包對 unixODBC-devel(Red Hat 和 SLES)或 unixodbc-dev (Ubuntu) 也具有依賴項。 下表列出了 msodbcsql 包的所在位置:
Linux 分發版 ODBC 包位置
Red Hat https://packages.microsoft.com/rhel/8/prod
SLES https://packages.microsoft.com/sles/12/prod
Ubuntu 16.04 msodbcsql
unixodbc-dev
將下載的包移至 Linux 計算機。如果使用了不同的計算機下載包,則可以通過“scp”命令將包移至你的 Linux 計算機。
安裝包:安裝 mssql-tools 和 msodbc 包。如果遇到任何依賴項錯誤,請忽略,直到出現下一步操作。
平台 包安裝命令
Red Hat | sudo yum localinstall msodbcsql-<version>.rpm
| sudo yum localinstall mssql-tools-<version>.rpm
SLES | sudo zypper install msodbcsql-<version>.rpm
| sudo zypper install mssql-tools-<version>.rpm
Ubuntu | sudo dpkg -i msodbcsql_<version>.deb
| sudo dpkg -i mssql-tools_<version>.deb
解決缺少依賴項的問題:此時可能會出現缺少依賴項的情況。如果沒有,可以跳過此步驟。
在某些情況下,必須手動查找並安裝這些依賴項。
對於 RPM 包,可通過以下命令檢查必需的依賴項:
rpm -qpR msodbcsql-<version>.rpm
rpm -qpR mssql-tools-<version>.rpm
對於 Debian 包,如果能夠訪問包含這些依賴項的已批准存儲庫,則最簡單的解決辦法是使用 apt-get 命令:
sudo apt-get -f install
備注:此命令還會完成 SQL Server 包的安裝。
如果此命令對 Debian 包不起作用,可通過以下命令檢查必需的依賴項:
dpkg -I msodbcsql_<version>_amd64.deb | grep "Depends:"
dpkg -I mssql-tools_<version>_amd64.deb | grep "Depends:"
==================================================================================================
Python程序訪問SQLServer數據庫
==================================================================================================
import pymssql
server = 'localhost'
user = 'sa'
password = 密碼
database = 'ecology'
conn = pymssql.connect(server, user, password, database)
cursor = conn.cursor()
cursor.execute("""
IF OBJECT_ID('persons', 'U') IS NOT NULL
DROP TABLE persons
CREATE TABLE persons (
id INT NOT NULL,
name VARCHAR(100),
salesrep VARCHAR(100),
PRIMARY KEY(id)
)
""")
cursor.executemany(
"INSERT INTO persons VALUES (%d, %s, %s)",
[(1, 'John Smith', 'John Doe'),
(2, 'Jane Doe', 'Joe Dog'),
(3, 'Mike T.', 'Sarah H.')])
conn.commit()
cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')
row = cursor.fetchone()
while row:
print("ID=%d, Name=%s" % (row[0], row[1]))
row = cursor.fetchone()
conn.close()
參考文檔:
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup-tools?view=sql-server-ver15