Устранение ошибки Laravel: SQLSTATE[HY000] [2002] Не удалось установить соединение, поскольку целевой компьютер активно отказался от него

Laravel – это популярный PHP-фреймворк, используемый для разработки веб-приложений. Однако, как и любое программное обеспечение, оно может столкнуться с ошибками во время разработки или развертывания. Одной из распространенных ошибок, с которыми могут столкнуться разработчики, является ошибка «SQLSTATE[HY000] [2002] Невозможно установить соединение, поскольку целевая машина активно отказалась от него». В этой статье мы рассмотрим несколько способов устранения и решения этой проблемы, а также примеры кода.

Метод 1: проверка конфигурации базы данных
Первый шаг — проверить правильность конфигурации базы данных в Laravel. Откройте файл .envи убедитесь, что учетные данные базы данных верны. В частности, проверьте значения DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAMEи DB_PASSWORD..

Пример:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password

Метод 2: проверка доступности сервера базы данных
Убедитесь, что сервер базы данных работает и доступен из приложения Laravel. Вы можете попробовать подключиться к серверу базы данных с помощью инструмента управления базой данных или с помощью командной строки.

Метод 3: проверьте настройки брандмауэра сервера базы данных
Если вы используете сервер базы данных на отдельном компьютере, убедитесь, что брандмауэр разрешает входящие соединения через указанный порт (обычно 3306 для MySQL).

Способ 4: перезапустить сервер базы данных и веб-сервер
Иногда проблему может решить перезапуск сервера базы данных и веб-сервера. Перезапустите службы и проверьте, сохраняется ли ошибка.

Метод 5: проверка сокета или хоста сервера базы данных
Если вы используете сокет для подключения к серверу базы данных, убедитесь, что путь к сокету правильный и доступен. Если вы используете хост, еще раз проверьте правильность имени хоста или IP-адреса.

Метод 6: проверка соединения с базой данных вне Laravel
Чтобы изолировать проблему, вы можете попробовать подключиться к базе данных с помощью другого скрипта или инструмента за пределами Laravel. Это может помочь определить, связана ли проблема с Laravel или с сервером базы данных.

Пример использования PDO:

<?php
try {
    $pdo = new PDO('mysql:host=127.0.0.1;dbname=your_database_name', 'your_username', 'your_password');
    echo 'Connected successfully!';
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

Метод 7: проверка журналов сервера базы данных
Проверьте журналы сервера базы данных на наличие соответствующих сообщений об ошибках или предупреждений. Это может дать представление об основной причине проблемы с подключением.

Ошибка «SQLSTATE[HY000] [2002] Невозможно установить соединение, потому что целевой компьютер активно отказался от него» в Laravel может быть вызван различными факторами, включая неправильную конфигурацию базы данных, настройки брандмауэра или доступность сервера. Следуя методам устранения неполадок, описанным в этой статье, вы сможете эффективно диагностировать и устранить ошибку.