Php 在Laravel应用中将数据库从Postgre更改为MySQL会导致超时/Symfony异常
在网上没有发现任何有用的东西 我无法在Plesk云服务器上运行Postgre,所以我尝试在windows开发系统上切换到MySQL 我在.env和database.php中更改了相应的条目,并在php.ini中取消了mysqli/pdo_mysql行的注释 mysqli似乎根本不起作用,因为它导致Query/PDO Exception/“找不到数据库驱动程序”,就像根本没有活动的mysql扩展一样 pdo_mysql进行了更改,但导致超时,然后是长时间的html输出,从Php 在Laravel应用中将数据库从Postgre更改为MySQL会导致超时/Symfony异常,php,mysql,laravel,symfony,Php,Mysql,Laravel,Symfony,在网上没有发现任何有用的东西 我无法在Plesk云服务器上运行Postgre,所以我尝试在windows开发系统上切换到MySQL 我在.env和database.php中更改了相应的条目,并在php.ini中取消了mysqli/pdo_mysql行的注释 mysqli似乎根本不起作用,因为它导致Query/PDO Exception/“找不到数据库驱动程序”,就像根本没有活动的mysql扩展一样 pdo_mysql进行了更改,但导致超时,然后是长时间的html输出,从 Symfony \ C
Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_UNKNOWN)
超过了30秒的最长执行时间
并专注于
C:\Users\....\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php
/**
* Create a new PDO connection.
*
* @param string $dsn
* @param array $config
* @param array $options
* @return \PDO
*/
public function createConnection($dsn, array $config, array $options)
{
list($username, $password) = [
$config['username'] ?? null, $config['password'] ?? null,
];
try {
return $this->createPdoConnection(
$dsn, $username, $password, $options
);
} catch (Exception $e) {
return $this->tryAgainIfCausedByLostConnection(
$e, $dsn, $username, $password, $options
);
}
}
Arguments
"Maximum execution time of 30 seconds exceeded"
Apache error.log看起来很干净。MySQL DLL存在于/ext中。在postgre中,一切正常。在我重新安排一切之前,也许有人有个主意。谢谢,问题是.env中的端口号仍然设置为postgre。
很明显,即使页面上没有数据库访问权限,Laravel最初也会尝试建立连接。我猜您的连接尝试会引发异常。
tryAgainIfCausedByLostConnection
是否继续尝试连接?这可能就是为什么你要暂停工作的原因。检查您的连接。另外,您为什么在用户名和密码上使用空合并运算符:??
?这些是连接所必需的,所以如果没有这些值,不应该只使用null而引发错误吗?源代码是Symfony代码。我在那里没有洞察力。它吐出一个包含91个项目的stacktrace。这是我第一次遇到Symfony错误,而不是通常格式化的Laravel错误页面。