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

Windows11下PHP10连接SQL Server遇SQLSTATE[08001]超时错误求助

解决SQL Server TCP连接超时问题(SQLSTATE[08001])

1. 先验证网络连通性

  • 测试服务器IP可达性:运行 ping <你的服务器IP>,确保能收到正常回复
  • 测试1433端口开放:
    • PowerShell执行:Test-NetConnection <服务器IP> -Port 1433,查看TcpTestSucceeded是否为True
    • 或用telnet命令:telnet <服务器IP> 1433,窗口变黑说明端口开放,否则提示连接失败

2. 检查SQL Server的网络配置

  • 打开SQL Server配置管理器,依次展开SQL Server网络配置 -> MSSQLSERVER的协议
  • 确保TCP/IP协议状态为启用,右键点击选择属性
  • 切换到IP地址标签,找到对应服务器的IP(公网/内网),设置已启用为是,TCP端口为1433
  • 重启SQL Server (MSSQLSERVER)服务,使配置生效

3. 修正连接字符串与框架配置

  • 基础PDO测试(排除Laravel框架干扰):创建一个简单的PHP脚本测试连接
    <?php
    try {
        $dsn = "sqlsrv:Server=你的服务器IP,1433;Database=你的数据库名";
        $pdo = new PDO($dsn, "用户名", "密码");
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "连接成功!";
    } catch (PDOException $e) {
        die("连接失败: " . $e->getMessage());
    }
    ?>
    
  • Laravel配置检查:
    • 确认.env文件里的DB_CONNECTION=sqlsrv,DB_HOST、DB_PORT=1433、DB_DATABASE、DB_USERNAME、DB_PASSWORD均正确
    • 可在config/database.php的sqlsrv连接配置中添加超时参数:
      'sqlsrv' => [
          'driver' => 'sqlsrv',
          'host' => env('DB_HOST', 'localhost'),
          'port' => env('DB_PORT', '1433'),
          'database' => env('DB_DATABASE', 'forge'),
          'username' => env('DB_USERNAME', 'forge'),
          'password' => env('DB_PASSWORD', ''),
          'charset' => 'utf8',
          'prefix' => '',
          'prefix_indexes' => true,
          'options' => [
              PDO::ATTR_TIMEOUT => 60, // 设置60秒连接超时
              PDO::SQLSRV_ATTR_QUERY_TIMEOUT => 60, // 设置60秒查询超时
          ],
      ],
      

4. 检查ODBC驱动兼容性

  • 确认安装的ODBC Driver 17/18 for SQL Server与PHP位数一致(均为x64或x86)
  • 若当前使用ODBC 17,尝试升级到最新的ODBC Driver 18,解决部分兼容性问题

5. 防火墙规则排查

  • 本地Windows防火墙:允许Web服务器(Apache/Nginx)或PHP进程出站访问1433端口
  • 服务器端防火墙:添加入站规则,允许你的Windows 11机器IP访问1433端口
  • 云服务器安全组:如果是Azure/AWS等云主机,需在安全组中开放1433端口给你的公网IP

内容的提问来源于stack exchange,提问作者Saddam Aziz Irfana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 17:17:45