一、服务状态检查
首先确认SQL Server服务是否正在运行,使用命令sudo systemctl status mssql-server
。若服务未启动,可通过sudo systemctl start mssql-server
启动;若启动失败,需结合日志进一步分析(如后续的日志检查步骤)。
二、日志文件分析
SQL Server的错误日志是故障排查的核心依据,通常位于/var/log/mssql/errorlog
。通过查看日志中的错误信息(如启动错误、连接拒绝、权限问题等),可快速定位问题根源。此外,使用journalctl -u mssql-server
查看系统日志,补充了解服务启动过程中的系统级错误。
三、网络与端口排查
ping <服务器IP>
测试客户端与服务器的网络可达性,确保网络配置正确(如无防火墙拦截、路由正常)。telnet <服务器IP> 1433
(或nc -zv <服务器IP> 1433
)检查SQL Server是否在监听默认端口(1433)。若端口未监听,需排查服务配置或防火墙设置。四、防火墙与SELinux配置
sudo firewall-cmd --zone public --add-port 1433/tcp --permanent
sudo firewall-cmd --reload
getenforce
返回Enforcing
),可能限制SQL Server的网络访问。可临时设置为宽容模式(setenforce 0
)测试是否解决问题(生产环境需谨慎,建议通过策略调整而非禁用SELinux)。五、配置文件验证
检查SQL Server主配置文件/etc/mssql/mssql.conf
(或/etc/mssql/mssql.conf.d/90-sqlservr.conf
)的关键参数:
listen_addresses
:需设置为0.0.0.0
以允许远程连接(默认可能为localhost
);六、权限与访问控制
/var/opt/mssql
)需属于mssql
用户和组。使用chown -R mssql:mssql /var/opt/mssql
修复权限问题。sa
)具有足够权限(如sysadmin
角色),且密码正确。七、客户端连接检查
msodbcsql
、sqlcmd
)。安装命令:sudo yum install -y mssql-tools unixODBC-devel
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile && source ~/.bash_profile
。localhost
、IP或域名)。八、资源占用排查
若SQL Server运行缓慢或崩溃,需检查系统资源使用情况:
top
、free -m
查看资源占用,若内存不足,可通过sp_configure
调整SQL Server最大内存限制(如EXEC sp_configure 'max server memory', 4096; RECONFIGURE;
)。df -h
检查磁盘空间,若空间不足,可通过收缩日志文件(DBCC SHRINKFILE
)或清理缓存释放空间。九、连接失败专项排查
若出现“无法连接到服务器”的错误,需额外检查:
tcp
)、端口号(如1433
)和数据库名称;sa
账号,确保密码符合复杂度要求(如包含大小写字母、数字、特殊字符);sqlcmd
连接后执行SELECT state_desc FROM sys.databases WHERE name = '数据库名'
,确认数据库是否处于ONLINE
状态。