如何在Laravel中修复PDO sqlsrv连接超时?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Laravel中修复PDO sqlsrv连接超时?相关的知识,希望对你有一定的参考价值。
开发商!
我正在使用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。
我在本地计算机上运行此问题。我重新启动了laravel服务器并确保ms sql localdb正在运行并且问题自行解决了。
我有同样的错误。
从你的host
文件和DB_HOST
中删除.env
// config/database.php
条目后,它对我有效。
我为连接做了什么
- 安装了正确版本的sqlsrv dll。
- 在Laravel更新了doctrine dbal包。
我的数据库配置如下
'sqlsrv3' => [
'driver' => 'sqlsrv',
'host' => '<host-name>',
'database' => '<database-name>',
'username' => '<your-username>',
'password' => '<your-password>',
]
有相同的错误,结果是我的密码错了。确认您拥有正确的价值观。
DB_HOST={youservername}.database.windows.net
DB_DATABASE={dbname}
DB_USERNAME={username}
DB_PASSWORD={yourpassword}
DB_PORT=1433
如果没有修复,请重置密码,然后重试
以上是关于如何在Laravel中修复PDO sqlsrv连接超时?的主要内容,如果未能解决你的问题,请参考以下文章
php以pdo方式连接sqlserver,无法开启sqlsrv扩展
Centos7.5 php7.2 安装pdo_sqlsrv 连接 sql server(转)
如何在 Ubuntu 20.04.2 LTS 中启用驱动程序 pdo-sqlsrv