编程语言
首页 > 编程语言> > php – 常规错误:20003 Adaptive Server连接超时[20003](严重级6)

php – 常规错误:20003 Adaptive Server连接超时[20003](严重级6)

作者:互联网

嗨以下是我得到的错误: –

PDOException: SQLSTATE[HY000]: General error: 20003 Adaptive Server connection timed out [20003] (severity
 6) [(null)] in /var/www/html/web/vendor/laravel/framework/src/Illuminate/Database/Connection.php:335

我试图从Linux laravel 5.2代码片段连接到Windows上的MS-SQL-Server.

> Windows机器上有防火墙禁用.
>我能够在ms sql默认可用端口上的Windows IP上telnet.
>我没有使用免费的TDS,所以这不是TDS的重复,甚至没有回答这个问题.
> centos 7,能够ping到IP.没有连接问题.
>从终端运行脚本,因此不必出现超时问题.

在我尝试获取5k记录之前,我的thot查询需要更长的时间,但即使我将限制减少到100然后也得到相同的错误.
我的网络连接速度很快,服务器硬件配置很高.

我已经尝试了下面链接给出的所有解决方案,但是我获得了成功,但是当我的脚本运行时面临上述问题.

[https://blogs.msdn.microsoft.com/sql_protocols/2008/04/30/steps-to-troubleshoot-sql-connectivity-issues/][1]

我的脚本在本地运行良好.但是当我将代码提升为dev时面临问题.

解决方法:

问题似乎与查询的执行时间有关.

我遇到了同样的问题,我在config / databases.php文件中更改了超时设置后解决了这个问题.

使用以下代码:

'options' => [
    PDO::ATTR_TIMEOUT => 300, // up to 5 minutes
],

完整的配置应该是:

'sqlsrv' => [
    'driver' => 'sqlsrv',
    'host' => env('DB_HOST', 'localhost'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'prefix' => '',
    'options' => [
        PDO::ATTR_TIMEOUT => 300,
    ],
],

标签:php,laravel-5,sql-server,linux,freetds
来源: https://codeday.me/bug/20190823/1701972.html