Изменение базы данных с Postgre на MySQL в приложении Laravel приводит к исключению Timeout / Symfony

Не нашел ничего полезного в сети.

Мне не удалось запустить Postgre на облачном сервере Plesk, поэтому я попытался переключиться на MySQL в своей системе разработки Windows.

Я изменил соответствующие записи в .env и database.php и раскомментировал строки mysqli / pdo_mysql в php.ini.

mysqli, похоже, вообще не работает, так как это приводит к исключению Query / 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 выглядит чистым. DLL-файлы MySQL находятся в каталоге / ext. С postgre все нормально работало. Может у кого есть идея, прежде чем я все заново настрою. Спасибо

Я предполагаю, что ваша попытка подключения вызывает исключение. tryAgainIfCausedByLostConnection просто будет продолжать попытки подключиться? Наверное, поэтому у тебя тайм-аут. Проверьте ваше соединение.

Chip Dean 07.09.2018 22:01

Также почему вы используете нулевой оператор объединения: ?? в своем имени пользователя и пароле? Они необходимы для подключения, поэтому разве отсутствие этих значений не должно вызывать ошибку вместо простого использования null?

Chip Dean 07.09.2018 22:03

Источник - код Symfony. Я ничего не понимаю в этом. Он выводит трассировку стека с 91 элементом. Впервые у меня возникла ошибка Symfony вместо обычной отформатированной страницы ошибок Laravel.

sntrcode 07.09.2018 23:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема заключалась в том, что номер порта по-прежнему был установлен на postgre в .env. Laravel, по-видимому, сначала пытается установить соединение, даже если на странице нет доступа к базе данных.

Другие вопросы по теме