在 Debian 上“修复 SQL Server”通常指 Microsoft SQL Server on Linux(mssql-server) 出现故障后的恢复。下面按常见场景给你一套从排查到修复的做法。
systemctl status mssql-server
常见状态:
active (running) → 服务正常failed → 服务启动失败(重点修复)inactive → 被停止查看详细日志:
journalctl -u mssql-server -xe
或:
cat /var/opt/mssql/log/errorlog
/var/opt/mssql 权限错误① 检查内存
free -h
低于 2G 会启动失败。
② 修复目录权限
sudo chown -R mssql:mssql /var/opt/mssql
sudo chmod -R 755 /var/opt/mssql
③ 尝试重启
sudo systemctl restart mssql-server
重置 SA 密码:
sudo /opt/mssql/bin/mssql-conf setup
或强制重置:
systemctl stop mssql-server
/opt/mssql/bin/mssql-conf set-sa-password
然后启动:
systemctl start mssql-server
DBCC CHECKDB('数据库名') WITH NO_INFOMSGS, ALL_ERRORMSGS;
修复(有风险):
ALTER DATABASE 数据库名 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB('数据库名', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE 数据库名 SET MULTI_USER;
⚠️ REPAIR_ALLOW_DATA_LOSS 可能丢数据,优先用备份。
重置配置(不会删数据):
sudo /opt/mssql/bin/mssql-conf setup
或查看配置:
cat /var/opt/mssql/mssql.conf
sudo apt update
sudo apt install --reinstall mssql-server
sudo systemctl stop mssql-server
sudo apt remove mssql-server
sudo rm -rf /var/opt/mssql
sudo apt install mssql-server
sudo /opt/mssql/bin/mssql-conf setup
⚠️ 删除 /var/opt/mssql 会清空所有数据库
| 现象 | 建议 |
|---|---|
| 起不来 | 看 errorlog + 权限 |
| 登不上 | 重置 SA |
| 库打不开 | CHECKDB |
| 配置错 | mssql-conf |
| 全坏 | 重装(慎删数据) |
如果你愿意,可以把下面信息发我,我可以直接帮你定位:
systemctl status mssql-server 输出/var/opt/mssql/log/errorlog 最后 30 行我可以直接告诉你具体哪一步修复最安全。