修复 Debian 上的 SQL Server(Microsoft SQL Server on Linux),一般分几种常见场景。下面按最常见问题 → 排查 → 修复的思路给你一个完整指南。
请先判断你是哪种情况:
你可以先执行:
systemctl status mssql-server
把输出结果贴出来,我可以更精确判断。
sudo systemctl status mssql-server
如果看到 inactive 或 failed:
sudo systemctl start mssql-server
sudo systemctl enable mssql-server
如果启动失败,查看日志:
sudo journalctl -u mssql-server -n 50
SQL Server 最低要求 2GB 内存,否则会直接退出。
检查内存:
free -h
临时解决(不推荐生产):
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
如果你还没运行过初始化:
sudo /opt/mssql/bin/mssql-conf setup
常见问题:
SQL Server 默认端口:1433
检查监听:
sudo ss -lntp | grep 1433
防火墙(如果用 ufw):
sudo ufw allow 1433/tcp
测试本地连接:
sqlcmd -S localhost -U SA
如果失败,重置 SA 密码:
sudo /opt/mssql/bin/mssql-conf set-sa-password
⚠️ 会删除系统数据库(master/model/msdb)
⚠️ 不影响你自己放的数据文件,但建议先备份
sudo apt remove mssql-server -y
sudo apt purge mssql-server -y
sudo rm -rf /var/opt/mssql
重新安装:
sudo apt update
sudo apt install mssql-server -y
sudo /opt/mssql/bin/mssql-conf setup
如果你看到类似错误:
Error: 824Error: 825corrupt database修复步骤:
sudo systemctl stop mssql-server
sudo cp -a /var/opt/mssql/data /var/opt/mssql/data.bak
DBCC CHECKDB ('数据库名') REPAIR_ALLOW_DATA_LOSS;
⚠️ 会丢数据,生产环境一定要先备份
SQL Server 官方支持:
确认版本:
cat /etc/debian_version
你可以直接把下面几条命令的输出发给我:
systemctl status mssql-server
journalctl -u mssql-server -n 50
cat /var/opt/mssql/log/errorlog | tail -n 50
free -h
我可以 精确告诉你哪一步坏了、怎么修,不用重装。