在 CentOS 上“修复 SQL Server”通常分几种情况:服务起不来、数据库损坏、登录失败、无法连接 等。下面按常见场景给你一套实用排错与修复指南(基于 SQL Server on Linux / CentOS)。
systemctl status mssql-server
如果没运行:
systemctl start mssql-server
查看日志(最重要):
journalctl -u mssql-server -xe
/var/opt/mssql/log/errorlog
free -h
CentOS 建议:
sudo systemctl stop mssql-server
chown -R mssql:mssql /var/opt/mssql
登录 SQL Server:
sqlcmd -S localhost -U SA
查看数据库状态:
SELECT name, state_desc FROM sys.databases;
如果是 SUSPECT:
ALTER DATABASE 数据库名 SET EMERGENCY;
ALTER DATABASE 数据库名 SET SINGLE_USER;
DBCC CHECKDB ('数据库名', REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;
ALTER DATABASE 数据库名 SET MULTI_USER;
⚠️ REPAIR_ALLOW_DATA_LOSS 可能丢数据,生产环境谨慎
停止服务:
systemctl stop mssql-server
重置 SA 密码:
/opt/mssql/bin/mssql-conf set-sa-password
启动服务:
systemctl start mssql-server
firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload
SELECT * FROM sys.configurations
WHERE name = 'remote access';
确认已启用:
EXEC sp_configure 'remote access', 1;
RECONFIGURE;
如果 SQL 起不来且日志报错:
Error: 9003 / 823 / 824
可尝试:
DBCC CHECKDB ('数据库名', REPAIR_REBUILD);
或
⚠️ 会清空数据,先备份 /var/opt/mssql
systemctl stop mssql-server
yum remove mssql-server
rm -rf /var/opt/mssql
yum install -y mssql-server
/opt/mssql/bin/mssql-conf setup
systemctl statuserrorlogDBCC CHECKDB如果你能告诉我:
我可以直接帮你精准定位并给命令。