在 Debian 下使用 SQL Server(通常是 Microsoft SQL Server on Linux)时,排错一般围绕 服务状态、日志、系统依赖、网络、配置参数 几个方面进行。下面给你一套系统化的排错思路和方法。
systemctl status mssql-server
常见状态:
active (running):正常failed:启动失败(重点看日志)inactive:未启动sudo systemctl start mssql-server
sudo systemctl restart mssql-server
SQL Server on Linux 日志默认位置:
/var/opt/mssql/log/errorlog
查看日志:
sudo tail -n 100 /var/opt/mssql/log/errorlog
常见错误示例:
Unable to start SQL ServerCould not create listenerFailed to allocate memoryTLS / certificate errorSQL Server 至少需要 2GB RAM
查看内存:
free -h
如内存不足:
df -h /var/opt/mssql
数据或日志目录满会导致无法启动。
数据目录默认:
/var/opt/mssql
权限问题常见于:
修复示例:
sudo chown -R mssql:mssql /var/opt/mssql
SQL Server 默认端口:1433
ss -tulnp | grep 1433
如果没有监听:
sudo ufw allow 1433/tcp
或确认:
sudo ufw status
检查:
测试连接:
sqlcmd -S localhost -U sa
sudo /opt/mssql/bin/mssql-conf set-sa-password
查看配置:
sudo /opt/mssql/bin/mssql-conf list
常见操作:
sudo /opt/mssql/bin/mssql-conf traceflag 3226 on
sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
重置配置:
sudo /opt/mssql/bin/mssql-conf unset <parameter>
journalctl -u mssql-server -n 100
sudo dmesg | tail
用于排查:
| 问题 | 可能原因 | 解决 |
|---|---|---|
| 无法启动 | 内存不足 | 增加内存 |
| 启动慢 | 磁盘 IO 差 | 换 SSD |
| 连接超时 | 防火墙 | 开放 1433 |
| 登录失败 | SA 密码错 | 重置密码 |
| TLS 错误 | 系统时间错误 | 同步时间 |
| 数据损坏 | 强制关机 | 恢复备份 |
systemctl statuserrorlogjournalctl如果你能告诉我:
我可以给你更精准的排错方案。