CentOS下安装SQL Server启动失败且日志目录为空该如何解决?
CentOS安装SQL Server启动失败且日志目录为空排查方案
- 首先检查目录权限
SQL Server运行依赖mssql用户对数据目录的读写权限,权限异常会导致无法写入日志、服务启动失败,执行命令查看权限:
正常输出应为所有者和用户组均为ls -ld /var/opt/mssqlmssql,权限不低于700,若不符合执行如下命令修复:sudo chown -R mssql:mssql /var/opt/mssql sudo chmod -R 700 /var/opt/mssql - 查看系统层面的服务启动日志
服务启动阶段的报错会先记录在systemd日志中,还没写入应用日志就终止的情况下,可以用journalctl查看完整报错:
常见报错包括:内存不足(SQL Server要求至少2G可用内存,虚拟机分配内存过小会直接启动失败)、1433端口被其他服务占用、依赖包缺失,根据日志提示对应修复即可。sudo journalctl -u mssql-server.service --no-pager - 临时关闭SELinux验证拦截问题
CentOS默认开启的SELinux会拦截SQL Server的相关操作,先临时关闭验证是否是该原因:
再尝试启动服务:sudo setenforce 0
若启动成功说明是SELinux拦截导致,可执行如下命令添加SELinux规则适配:sudo systemctl start mssql-serversudo semanage fcontext -a -t usr_t "/opt/mssql/bin(/.*)?" sudo restorecon -Rv /opt/mssql/bin - 重新执行初始化流程验证配置
初始化时SA密码复杂度不达标、版本选择错误都会导致启动失败,重新执行初始化命令,全程观察输出的报错提示:
注意SA密码需要满足长度不低于8位,包含大写字母、小写字母、数字、特殊字符中至少三类的复杂度要求。sudo /opt/mssql/bin/mssql-conf setup - 检查系统版本兼容性
SQL Server仅适配CentOS 7、CentOS 8版本,若使用CentOS 6、CentOS Stream 9等未兼容版本也会出现启动异常,执行命令查看当前系统版本:
版本不匹配建议更换兼容的系统版本,或使用容器方式部署SQL Server。cat /etc/redhat-release
内容的提问来源于stack exchange,提问作者alinn
相关产品推荐
相关产品推荐

