如何在Laravel中修复PDO sqlsrv连接超时?

问题描述 投票:6回答:4

开发商!

我正在使用Laravel框架,我需要连接到MS SQL 2014 Express数据库。我已经在.env中进行了所有正确的配置(我甚至尝试过将连接参数直接放到database.php配置中)但是在第一次请求时我总是会遇到错误:

PDOException in Connector.php line 55:
SQLSTATE[08001]: [Microsoft][ODBC Driver 11 for SQL Server]TCP Provider: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

超时后,我总是得到这个PHP致命的:

FatalErrorException in Connector.php line 55
Invalid handle returned.

作为开发工具我正在使用XAMPP,当我重新启动apache服务器时,有时我可以成功建立连接,但只有20-30次尝试中的1次。

Laravel正在使用PDO驱动程序,所以我尝试使用sqlsrv_connect() - 它有效!没有错误,一切都很好。

有人可以帮我配置PDO吗? Laravel只使用PDO驱动程序,因此我不能只切换到sqlsrv_connect。

pdo laravel-5.2 sqlsrv
4个回答
1
投票

我在本地计算机上运行此问题。我重新启动了laravel服务器并确保ms sql localdb正在运行并且问题自行解决了。


0
投票

我有同样的错误。

从你的host文件和DB_HOST中删除.env // config/database.php条目后,它对我有效。


0
投票

我为连接做了什么

  1. 安装了正确版本的sqlsrv dll。
  2. 在Laravel更新了doctrine dbal包。

我的数据库配置如下

'sqlsrv3' => [
            'driver' => 'sqlsrv',
            'host' => '<host-name>',
            'database' => '<database-name>',
            'username' => '<your-username>',
            'password' => '<your-password>',
    ]  

-1
投票

有相同的错误,结果是我的密码错了。确认您拥有正确的价值观。

DB_HOST={youservername}.database.windows.net
DB_DATABASE={dbname}
DB_USERNAME={username}  
DB_PASSWORD={yourpassword}
DB_PORT=1433

如果没有修复,请重置密码,然后重试

© www.soinside.com 2019 - 2024. All rights reserved.