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

Laravel API/Postman请求报登录超时,Tinker可连接远程SQL Server

可能的原因及解决办法

1. 配置缓存未更新

若之前执行过php artisan config:cache,修改.env或database.php后未重新生成缓存,API请求会加载旧配置导致连接失败。而Tinker在开发环境下默认不读取缓存配置,因此能正常连接。

解决:

  • 清除配置缓存:
sail artisan config:clear
  • 如需缓存配置,重新生成:
sail artisan config:cache

2. 容器IP未被SQL Server防火墙允许

如果你的Tinker是在WSL2主机而非Sail容器内运行(比如直接在WSL终端执行php artisan tinker而非sail artisan tinker),此时WSL2主机IP在SQL Server防火墙白名单,但Sail容器的IP不在允许列表中,导致API请求(通过容器Web服务)连接超时。

解决:

  • 查看Sail容器的IP:
sail inspect laravel.test | grep IPAddress
  • 将该IP添加到远程SQL Server的防火墙允许列表;测试环境可直接允许Docker容器所在子网的所有IP访问(生产环境需谨慎)。

3. 数据库连接超时参数缺失

当前database.php中仅配置了编码,未设置连接超时时间,API请求时可能因网络波动导致登录阶段超时。

解决:
在database.php的sqlsrv配置的options中添加连接超时参数:

'options' => [
    PDO::SQLSRV_ATTR_CONNECTION_TIMEOUT => 30, // 连接超时时间(秒)
    PDO::SQLSRV_ATTR_ENCODING => PDO::SQLSRV_ENCODING_UTF8
],

4. WSL2网络转发不稳定

WSL2与Docker容器之间的网络转发偶尔会出现异常,导致容器内的数据库连接请求超时。

解决:

  • 重启WSL2:
wsl --shutdown
  • 重新启动Sail容器:
sail up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:19:59