从WordPress连接远程SQL Server失败,报ERROR 2002错误求助
WordPress连接远程SQL Server 遇ERROR 2002 排查方案
1. 先排查网络链路连通性
- 用
ping测试SQL Server主机是否可达:ping [你的SQL Server IP],如果持续丢包,说明网络链路存在问题(比如跨运营商路由故障、主机网络配置错误) - 用
tracert(Windows)或traceroute(Linux)追踪路由,定位阻断节点 - 用端口测试工具验证端口连通:
telnet [SQL Server IP] [端口号]或nc -zv [SQL Server IP] [端口号],如果连接失败,大概率是中间网络设备(如运营商防火墙、路由器ACL)拦截了流量,和SQL Server本地防火墙无关
2. 核对SQL Server TCP/IP配置细节
- 打开SQL Server配置管理器,确认TCP/IP协议已启用,且在IP地址列表中,对外提供服务的IP(不是127.0.0.1)的“已启用”设为“是”
- 检查监听端口:默认实例是1433,命名实例可能用动态端口,可在SQL Server错误日志中搜索“Server is listening on”获取实际端口号;如果用动态端口,建议改为固定端口,避免实例重启后端口变化
- 修改配置后务必重启SQL Server服务生效
3. 验证WordPress数据库配置
- 打开
wp-config.php,确认DB_HOST格式正确:默认端口写[SQL Server IP],非默认端口需写成[SQL Server IP]:[端口号](例如192.168.2.30:1433) - 确认
DB_USER是拥有远程连接权限的SQL Server账号,DB_PASSWORD输入无误
4. 检查SQL Server账号权限
- 登录SQL Server,查看目标账号的登录属性:在“登录”列表右键账号→属性,确认“允许连接到数据库引擎”设为“授予”
- 执行查询确认远程连接开关:
sp_configure 'remote access';,确保run_value为1;若不是,执行sp_configure 'remote access', 1; RECONFIGURE;开启远程访问 - 确认账号已映射到目标数据库,并拥有
db_datareader、db_datawriter等必要权限
5. 排查WordPress服务器本地防火墙
- 检查WordPress所在服务器的防火墙/安全组,是否放行出站方向到SQL Server端口的TCP连接,很多时候只检查了目标端防火墙,忽略了本地出站限制
内容的提问来源于stack exchange,提问作者farah
相关产品推荐
相关产品推荐

