Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel应用中将数据库从Postgre更改为MySQL会导致超时/Symfony异常_Php_Mysql_Laravel_Symfony - Fatal编程技术网

Php 在Laravel应用中将数据库从Postgre更改为MySQL会导致超时/Symfony异常

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

在网上没有发现任何有用的东西

我无法在Plesk云服务器上运行Postgre,所以我尝试在windows开发系统上切换到MySQL

我在.env和database.php中更改了相应的条目,并在php.ini中取消了mysqli/pdo_mysql行的注释

mysqli似乎根本不起作用,因为它导致Query/PDO Exception/“找不到数据库驱动程序”,就像根本没有活动的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中,一切正常。在我重新安排一切之前,也许有人有个主意。谢谢,问题是.env中的端口号仍然设置为postgre。
很明显,即使页面上没有数据库访问权限,Laravel最初也会尝试建立连接。

我猜您的连接尝试会引发异常。
tryAgainIfCausedByLostConnection
是否继续尝试连接?这可能就是为什么你要暂停工作的原因。检查您的连接。另外,您为什么在用户名和密码上使用空合并运算符:
??
?这些是连接所必需的,所以如果没有这些值,不应该只使用null而引发错误吗?源代码是Symfony代码。我在那里没有洞察力。它吐出一个包含91个项目的stacktrace。这是我第一次遇到Symfony错误,而不是通常格式化的Laravel错误页面。