CentOS SQL Server安装失败的排查与解决步骤
确保CentOS版本符合SQL Server的要求(如SQL Server 2019支持CentOS 7,SQL Server 2022建议使用CentOS 8及以上)。若系统版本过低,升级CentOS至兼容版本。
sudo yum clean all && sudo yum makecache清除旧缓存,重新下载安装包。libsss_idmap)需通过EPEL获取。执行sudo curl -o /etc/yum.repos.d/epel.repo http://vault.fedoraproject.org/pub/archive/epel/8/Everything/x86_64/epel-bootstrap.repo下载EPEL配置,再用sudo yum install -y epel-release安装。sudo yum-config-manager --disable docker-ce-stable)或删除其repo文件(sudo rm /etc/yum.repos.d/docker-ce.repo),避免干扰SQL Server安装。安装失败后,错误日志是核心排查依据:
/var/opt/mssql/log/errorlog(若该目录不存在,说明SQL Server未启动,需先解决启动问题);journalctl -u mssql-server(实时查看服务运行状态,如code=killed, signal=ABRT表示进程被终止)。SQL Server需对/var/opt/mssql目录拥有完全控制权,否则无法启动:
sudo mkdir -p /var/opt/mssql;sudo chown -R mssql:mssql /var/opt/mssql;sudo chmod -R 755 /var/opt/mssql。instance_id文件丢失(导致无法生成GUID),可备份后删除(mv /var/opt/mssql/.system/instance_id /tmp),重启服务会自动生成新文件。SQL Server对资源有一定要求:
free -h查看),若内存不足,升级服务器或改用Docker方式运行(更灵活);/var/opt/mssql所在分区有足够空间(至少10GB以上)。sudo firewall-cmd --zone public --add-port 1433/tcp --permanent sudo firewall-cmd --reload telnet 服务器IP 1433检查端口是否可达(若无法连接,需检查网络配置或云服务器安全组规则)。若mssql-conf setup未正确执行,会导致服务无法启动:
sudo /opt/mssql/bin/mssql-conf setup;MySaPassw0rd!2025);sudo systemctl start mssql-server && sudo systemctl enable mssql-server。若服务仍无法启动,可通过手动运行获取详细错误信息:
mssql用户:sudo -u mssql /opt/mssql/bin/sqlservr;Permission denied(权限问题)、GLIBC版本过低(环境问题)等,根据提示调整(如升级glibc、修复权限)。GLIBC_2.27 not found错误,需升级glibc(需谨慎操作,避免系统不稳定),或降级SQL Server至兼容版本;/var/opt/mssql/.system/instance_id丢失,按步骤6删除后重启服务,会自动生成新文件。按照上述步骤逐一排查,多数安装失败问题均可解决。若仍无法解决,建议查阅Microsoft官方文档或联系技术支持,提供详细错误日志以获取进一步帮助。