你这个问题比较宽泛,我先按在 Ubuntu 上“修复 SQL Server(Microsoft SQL Server on Linux)”常见场景来给你系统说明。如果你能补充具体现象(起不来 / 连不上 / 数据损坏 / 升级失败),我可以给更精确的命令。
systemctl status mssql-server
常见状态:
active (running):服务正常failed:服务启动失败查看详细错误:
journalctl -u mssql-server -xe
原因:
/var/opt/mssql 权限问题修复步骤:
# 停止服务
sudo systemctl stop mssql-server
# 检查内存
free -h
# 修复权限
sudo chown -R mssql:mssql /var/opt/mssql
sudo chmod -R 755 /var/opt/mssql
# 启动
sudo systemctl start mssql-server
sudo systemctl stop mssql-server
sudo /opt/mssql/bin/mssql-conf set-sa-password
# 按提示输入新密码
sudo systemctl start mssql-server
登录 SQL Server:
sqlcmd -S localhost -U SA
执行:
ALTER DATABASE 数据库名 SET EMERGENCY;
ALTER DATABASE 数据库名 SET SINGLE_USER;
DBCC CHECKDB ('数据库名', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE 数据库名 SET MULTI_USER;
⚠️ REPAIR_ALLOW_DATA_LOSS 可能丢数据,仅应急用。
检查:
sudo ufw allow 1433/tcp
确认监听:
ss -tulnp | grep 1433
配置文件:
sudo /opt/mssql/bin/mssql-conf set network.tcpport 1433
sudo systemctl restart mssql-server
sudo apt update
sudo apt install --reinstall mssql-server
或彻底重装(⚠️会清空数据):
sudo apt purge mssql-server
sudo rm -rf /var/opt/mssql
sudo apt install mssql-server
| 检查项 | 命令 |
|---|---|
| 服务状态 | systemctl status mssql-server |
| 错误日志 | journalctl -u mssql-server |
| 数据目录 | /var/opt/mssql |
| 版本 | sqlcmd -S localhost -U SA -Q "SELECT @@VERSION" |
请告诉我:
我可以直接给你一步一步可复制的命令。