You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server连接失败求助:ODBC驱动协议不支持问题排查

SQL Server连接故障排查补充点

针对你遇到的「SQL Server不支持请求协议」连接错误,除了你已做的排查,还可以检查以下几个关键点:

  • 检查SQL Server实例的网络协议状态
    打开SQL Server配置管理器,依次展开「SQL Server网络配置」→「SQLEXPRESS的协议」,确认TCP/IP和Named Pipes协议处于启用状态。如果禁用,右键启用后重启SQL Server服务。

  • 验证TCP/IP端口配置
    在SQL Server配置管理器中双击TCP/IP协议,切换到「IP地址」标签,拉到最底部查看「IPAll」区域的TCP端口:

    • SQLEXPRESS默认使用动态端口,可通过「TCP动态端口」字段确认当前端口;也可手动指定固定端口(如1434)并重启服务。
    • 用命令 netstat -ano | findstr "sqlservr" 查看SQL Server进程实际监听的端口,确保和配置一致。
  • 排查ODBC驱动兼容性与完整性
    确认ODBC Driver 17 for SQL Server与你的SQL Server版本兼容(SQL Server 2012及以上版本支持该驱动);尝试卸载后重新安装对应版本的ODBC驱动,排除驱动损坏问题。

  • 检查IIS应用池身份权限
    打开IIS管理器,找到网站对应的应用池,查看「高级设置」中的「标识」:

    • 默认的ApplicationPoolIdentity可能没有SQL Server登录权限,可临时将标识改为「本地系统」测试连接;若能连接,再给IIS APPPOOL\你的应用池名称添加SQL Server登录权限。
  • 验证实例名称与连接方式

    • 用命令 sqlcmd -L 列出本地SQL Server实例,确认DESKTOP-HRTJKQ7\SQLEXPRESS实例存在;
    • 尝试将代码中的$serverName改为localhost\SQLEXPRESS或127.0.0.1\SQLEXPRESS,排除机器名解析问题。
  • 检查PHP sqlsrv扩展状态
    生成phpinfo页面,确认sqlsrv扩展已加载且版本与PHP 7.4匹配;若扩展未加载,检查php.ini中是否添加了extension=sqlsrv和extension=pdo_sqlsrv,且扩展文件路径正确。

  • 用ODBC数据源直接测试连接
    打开Windows「ODBC数据源管理器(64位)」,创建系统DSN,选择ODBC Driver 17 for SQL Server,填入实例名、数据库后测试连接。若ODBC测试失败,说明问题出在SQL Server或驱动层面,与PHP代码无关。

内容的提问来源于stack exchange,提问作者Fifth Leg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:55:21