一、你通常需要装哪些驱动?(先确认)
常见有 3 类:
| 用途 | 驱动 |
|---|---|
| ODBC(最常用,C / PHP / Python / MySQL FDW 等) | msodbcsql18 ✅ |
| 命令行工具 | mssql-tools18 |
| Java | mssql-jdbc |
| Python | pyodbc(依赖 ODBC) |
👉 99% 情况:装 ODBC + tools 即可
二、安装 Microsoft 官方 APT 仓库(必须)
1️⃣ 安装基础依赖
bash
sudo apt update
sudo apt install -y curl gnupg2 ca-certificates apt-transport-https
2️⃣ 导入 Microsoft GPG key
bash
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc \
| sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
3️⃣ 添加 Ubuntu 24.04 仓库
bash
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] \
https://packages.microsoft.com/ubuntu/24.04/prod noble main" \
| sudo tee /etc/apt/sources.list.d/microsoft-prod.list
4️⃣ 更新索引
bash
sudo apt update
三、安装 SQL Server ODBC 驱动(核心)
1️⃣ 安装 msodbcsql18
bash
sudo ACCEPT_EULA=Y apt install -y msodbcsql18
✅ 18 是当前稳定主线
❌ 不建议新系统装 msodbcsql17
2️⃣(可选)安装命令行工具
bash
sudo ACCEPT_EULA=Y apt install -y mssql-tools18 unixodbc-dev
把工具加入 PATH:
bash
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
四、验证是否安装成功
1️⃣ 查看 ODBC 驱动
bash
odbcinst -q -d
应看到:
text
[ODBC Driver 18 for SQL Server]
2️⃣ 测试连接(可选)
bash
sqlcmd -S <server_ip>,1433 -U sa -P 'YourPassword'
五、程序语言使用示例
Python(pyodbc)
bash
pip install pyodbc
python
import pyodbc
conn = pyodbc.connect(
"DRIVER={ODBC Driver 18 for SQL Server};"
"SERVER=server_ip,1433;"
"DATABASE=testdb;"
"UID=sa;"
"PWD=Password;"
"Encrypt=yes;"
"TrustServerCertificate=yes;"
)
PHP(pdo_sqlsrv)
bash
sudo apt install -y php-odbc
PHP 8.1+ 与 msodbcsql18 兼容良好
六、常见坑(Ubuntu 24.04 必看)
❌ 连接时报 SSL 错误
Driver 18 默认强制 TLS
解决方式之一:
text
Encrypt=yes;TrustServerCertificate=yes;
❌ 找不到驱动
bash
ls /opt/microsoft/msodbcsql18/lib64/
❌ 卸载旧版本冲突
bash
sudo apt remove msodbcsql17
七、如果你是下面这些场景,告诉我
我可以直接给你定制命令:
- PHP + SQL Server
- Python + SQL Server
- MySQL → SQL Server 数据同步
- Docker 容器
- 需要 Kerberos / AD 认证
- SQL Server 在云(Azure / 阿里云 / 腾讯云)
一句话总结
Ubuntu 24.04 安装 SQL Server 驱动 = Microsoft 仓库 + msodbcsql18