SQL Server在CentOS上的兼容性问题及解决方法
SQL Server对CentOS的支持随版本变化,需严格遵循官方兼容性要求:
安装SQL Server时,可能因缺少依赖包报错(如glibc、openssl等)。解决方法:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/centos/7/prod/x86_64/mssql-server-ver2019-release-17.0.1-1.x86_64.rpm
yum安装对应依赖(如sudo yum install -y glibc-common openssl),再重新执行SQL Server安装命令。常见连接失败原因及解决步骤:
sudo systemctl status mssql-server
若未运行,启动服务:sudo systemctl start mssql-server。sudo firewall-cmd --zone public --add-port 1433/tcp --permanent
sudo firewall-cmd --reload
/etc/mssql/mssql.conf),设置listen_addresses = 0.0.0.0(监听所有接口);并通过SQL Server Configuration Manager启用TCP/IP协议。sudo setenforce 0;若需永久禁用,编辑/etc/selinux/config文件,设置SELINUX=disabled。SQL Server需对相关目录拥有读写权限,否则会导致启动失败或数据写入错误。解决方法:
/var/opt/mssql)的所有权更改为mssql用户:sudo chown -R mssql:mssql /var/opt/mssql
750(所有者可读写执行,组用户可读执行):sudo chmod -R 750 /var/opt/mssql
CentOS下的SQL Server性能可能不如Windows,需通过以下方式优化:
max server memory参数)、启用查询存储(Query Store)监控性能,定期重建索引。EXPLAIN分析慢查询,优化SQL语句(如避免全表扫描、减少子查询嵌套)。mysqldump导出数据(mysqldump -u root -p --all-databases > all_databases.sql),再通过SQL Server的bcp工具或sqlcmd导入(sqlcmd -S localhost -U SA -i all_databases.sql)。