Sql server Laravel:设置MSSQL超时
我在Linux上工作,在另一台主机上使用MSSQL数据库,该数据库可能可用,也可能不可用。是否可以为此设置合理的超时?例如,2秒或3秒就足够了。目前,按照我的默认设置,超时时间超过1分钟 连接设置:Sql server Laravel:设置MSSQL超时,sql-server,laravel,Sql Server,Laravel,我在Linux上工作,在另一台主机上使用MSSQL数据库,该数据库可能可用,也可能不可用。是否可以为此设置合理的超时?例如,2秒或3秒就足够了。目前,按照我的默认设置,超时时间超过1分钟 连接设置: 'mssql' => [ 'driver' => 'sqlsrv', 'host' => 'CDBSQLSERVER', 'database' => 'MyDatabase', 'username' => 'XXX
'mssql' => [
'driver' => 'sqlsrv',
'host' => 'CDBSQLSERVER',
'database' => 'MyDatabase',
'username' => 'XXXX',
'password' => 'XXXX',
'charset' => 'utf8',
'prefix' => ''
]
freetds.conf
[CDBSQLSERVER]
host = 192.168.43.141
port = 1433
tds version = 7.0
我是这样使用它的:
$myDb = DB::connection('mssql');
$myDb->select(...);
尝试使用
PDO::ATTR_TIMEOUT
选项:
PDO::ATTR_TIMEOUT:以秒为单位指定超时持续时间。并非所有驱动程序都支持此选项,其含义可能因驱动程序而异。例如,sqlite将在放弃获取可写锁之前等待此时间值,但其他驱动程序可能会将其解释为连接或读取超时间隔。需要整数
在数据库.php
中:
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => [
PDO::ATTR_TIMEOUT => 1,
],
],
我忽略了/ets/freetds/freetds.conf中的超时!他们被评论掉了
[global]
...
timeout = 5
connect timeout = 5
我会成功的 使用参数
login\u timeout
'mssql' => [
'driver' => 'sqlsrv',
'host' => 'CDBSQLSERVER',
'database' => 'MyDatabase',
'username' => 'XXXX',
'password' => 'XXXX',
'charset' => 'utf8',
'prefix' => '',
'login_timeout' => YOUR_TIMEOUT
]
对不起,没有成功。行为没有改变。感谢您的反馈。很遗憾,我无法帮助OP,但fwiw这对我连接到mysql的lumen db确实有效