1. 安装前准备
在Ubuntu上集成SQL Server前,需完成基础环境配置:更新系统软件包列表以获取最新依赖,安装curl(用于下载微软仓库文件)、wget(可选,用于备份下载)、gnupg2(用于验证GPG密钥)、net-tools(用于查看网络端口)等工具。这些工具是后续步骤的必要前提。
2. 添加Microsoft SQL Server软件源
SQL Server未包含在Ubuntu默认仓库中,需手动添加微软官方仓库。首先导入微软GPG公钥(用于验证软件包完整性),然后根据Ubuntu版本添加对应仓库:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/microsoft.gpg
echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/22.04/mssql-server-2022 jammy main" | sudo tee /etc/apt/sources.list.d/mssql-server.list
jammy替换为focal即可。sudo apt update刷新软件包列表。3. 安装SQL Server
通过apt安装mssql-server包,安装完成后需运行配置脚本设置系统管理员(SA)账户密码及选择版本:
sudo apt install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
配置脚本会提示选择SQL Server版本(Evaluation(180天试用)、Developer(免费开发版)、Express(免费轻量版)、Standard(付费标准版)、Enterprise(付费企业版)),建议开发测试使用Developer版。设置密码时需满足复杂度要求(≥8位,包含大小写字母、数字和特殊字符)。
4. 启动与验证SQL Server服务
安装配置完成后,启动SQL Server服务并设置为开机自启:
sudo systemctl start mssql-server
sudo systemctl enable mssql-server
通过以下命令验证服务状态(显示active (running)即为正常):
sudo systemctl status mssql-server --no-pager
检查SQL Server是否监听默认端口(1433):
ss -tulnp | grep 1433
若端口未监听,需检查配置是否正确或防火墙是否阻止。
5. 安装SQL Server命令行工具
为便于本地管理,需安装sqlcmd(命令行客户端)和bcp(批量数据传输工具)。首先添加微软客户端工具仓库,然后安装工具并配置环境变量:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/microsoft-prod.gpg
echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/22.04/prod jammy main" | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt update
sudo apt install -y mssql-tools unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
验证工具安装:
sqlcmd -V
应输出sqlcmd版本信息(如sqlcmd version 18.12.1.1)。
6. 连接SQL Server
使用sqlcmd连接本地SQL Server实例(默认端口1433),输入SA账户密码即可进入交互式命令行:
sqlcmd -S localhost -U SA -P 'YourStrongPassword!'
连接成功后,可执行T-SQL命令测试(如查看SQL Server版本):
SELECT @@VERSION;
GO
输入QUIT退出命令行。
7. 配置远程访问(可选)
若需从远程主机连接,需修改Ubuntu防火墙设置,允许TCP端口1433的入站连接:
sudo ufw allow 1433/tcp
sudo ufw reload
若使用firewalld,则运行:
firewall-cmd --zone=public --add-port=1433/tcp --permanent
firewall-cmd --reload
确保SQL Server配置允许远程连接(默认已开启,可通过/opt/mssql/bin/mssql-conf list验证network.tcpport设置)。
8. 性能与安全优化(可选)
mssql-conf set memory.memorylimitmb)、创建合适的索引、优化查询语句(避免全表扫描)、启用SQL Server代理(用于自动执行备份、维护任务)。sysadmin角色后,运行ALTER LOGIN sa DISABLE),使用强密码策略,定期备份数据库(通过BACKUP DATABASE命令)。