centos中sqlserver错误代码
导读:CentOS 上 SQL Server 常见错误代码与处理 一、连接类错误 错误代码:53(Windows 网络错误码,Linux 客户端常见) 典型现象:无法建立到 192.168.x.x 的连接,提示“Anetwork-relate...
CentOS 上 SQL Server 常见错误代码与处理
一、连接类错误
- 错误代码:53(Windows 网络错误码,Linux 客户端常见)
- 典型现象:无法建立到 192.168.x.x 的连接,提示“Anetwork-related or instance-specific error… (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)(Microsoft SQL Server,错误:53)”。
- 快速排查:
- 放行防火墙端口:sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent & & sudo firewall-cmd --reload
- 确认服务监听:ss -lntp | grep 1433;必要时在 /etc/mssql/mssql.conf.d/ 下配置 listen_addresses=0.0.0.0
- 网络连通性:ping 目标主机;telnet 目标主机 1433
- SELinux:临时 setenforce 0 验证是否为 SELinux 拦截(生产环境请改为策略放行而非永久关闭)
- 错误代码:40(Named Pipes Provider, error: 40)
- 典型现象:命名管道无法打开连接。
- 快速排查:优先使用 TCP/IP(在连接字符串中指定 tcp: 主机,1433),或确保 SQL Server 已启用 TCP/IP 协议并监听正确端口。
二、TLS/SSL 握手失败
- 错误代码:31(SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)
- 典型现象:能连上服务器,但在登录前握手失败。
- 快速排查:
- 检查服务器端支持的 TLS 版本与证书配置;客户端与服务端需协议一致(常见为 TLS 1.2)
- 在客户端测试:openssl s_client -host 127.0.0.1 -port 1433,观察握手与证书信息
- 如为客户端旧库或系统 OpenSSL 配置过严,可按需调整(示例思路:在 /etc/pki/tls/openssl.cnf 的 system_default_sect 中设置 MinProtocol=TLSv1.2 或更高;修改后重启相关服务)。注意:放宽加密级别存在安全风险,仅用于验证与过渡。
三、服务启动与运行时错误
- 服务无法启动,状态显示 signal=ABRT,日志提示:sqlservr: Unable to read instance id from /var/opt/mssql/.system/instance_id: No such file or directory
- 处理步骤:
- 备份原文件(如有):cp /var/opt/mssql/.system/instance_id /root/instance_id.bak
- 删除缺失或损坏文件:rm -f /var/opt/mssql/.system/instance_id
- 重启服务:systemctl restart mssql-server(会自动重建 instance_id)
- 说明:该文件用于 NEWSEQUENTIALID() 的顺序 GUID 种子;丢失后会重新生成,可能影响顺序性语义。
- 处理步骤:
- 通用定位路径
- 服务状态:systemctl status mssql-server
- 引擎日志:/var/log/mssql/errorlog
- 系统日志:journalctl -u mssql-server
- 权限核查:chown -R mssql:mssql /var/opt/mssql(确保数据、日志目录归属正确)
四、T-SQL 与引擎常见错误代码
- 18456:登录失败(常见为身份验证模式或口令错误)
- 1205:死锁(事务冲突,需优化访问顺序/索引)
- 9002:事务日志已满(先备份日志,再收缩或设置定期日志备份)
- 3013:数据库恢复挂起(异常关机后常见,执行带 RECOVERY 的还原或检查一致性)
- 2627:主键/唯一约束冲突(检查重复数据或调整约束/索引策略)
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos中sqlserver错误代码
本文地址: https://pptw.com/jishu/770629.html
