【发布时间】:2018-09-07 18:23:35
【问题描述】:
在网上没有找到任何有用的东西。
我无法在 Plesk 云服务器上运行 Postgre,因此我尝试在我的 Windows 开发系统上切换到 MySQL。
我更改了 .env 和 database.php 中的相应条目,并取消了 php.ini 中 mysqli/pdo_mysql 行的注释。
mysqli 似乎根本不起作用,因为它导致查询/PDO 异常/“找不到数据库驱动程序”,就像根本没有激活 mysql 扩展一样。
pdo_mysql 进行了更改,但导致超时,然后是长 html 输出,以
开头 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 一切正常。在我重新设置所有内容之前,也许有人有一个想法。谢谢
【问题讨论】:
-
我猜您的连接尝试正在引发异常。
tryAgainIfCausedByLostConnection会继续尝试连接吗?这可能就是为什么你要抽出时间。检查您的连接。 -
另外你为什么在你的用户名和密码上使用空合并运算符:
???这些是连接所必需的,因此不应该缺少这些值而不是仅使用 null 引发错误吗? -
来源是 Symfony 代码。我在那里没有见识。它吐出一个包含 91 个项目的堆栈跟踪。我第一次遇到 Symfony 错误,而不是通常格式化的 Laravel 错误页面。