Sql server Laravel:设置MSSQL超时

Sql server Laravel:设置MSSQL超时,sql-server,laravel,Sql Server,Laravel,我在Linux上工作,在另一台主机上使用MSSQL数据库,该数据库可能可用,也可能不可用。是否可以为此设置合理的超时?例如,2秒或3秒就足够了。目前,按照我的默认设置,超时时间超过1分钟 连接设置: 'mssql' => [ 'driver' => 'sqlsrv', 'host' => 'CDBSQLSERVER', 'database' => 'MyDatabase', 'username' => 'XXX

我在Linux上工作,在另一台主机上使用MSSQL数据库,该数据库可能可用,也可能不可用。是否可以为此设置合理的超时?例如,2秒或3秒就足够了。目前,按照我的默认设置,超时时间超过1分钟

连接设置:

    '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确实有效