Ошибка в Laravel SQLSTATE[HY000] [2002] Connection refused
Ставил проект Laravel на хостинг, переделал все настройки подключения к базе, как надо, но работать упорно отказывалось, выкидывая ошибку SQLSTATE[HY000] [2002] Connection refused. Эта ошибка означает, что нет соединения с базой данных и первый же запрос к ней заканчивается таким вот исключением. Одна из причин такой ошибки может быть выключенный драйвер PDO, так как Laravel использует его для запросов. Рекомендуют проверить в php.ini строку
;extension=php_pdo_firebird.dll |
чтобы не было точки с запятой вначале. Если она есть, убрать её. В других источниках указывается, что в новых версиях Laravel, начиная с 5.4, этого можно и не делать. В службе поддержки хостинга посоветовали обратиться к разработчикам Laravel за разъяснением ошибки. Я сразу захотел написать серию статей об ошибках при работе с Laravel, которые заканчиваются такой мудрой фразой.
Но, как оказалось, всё гораздо проще. Настройки Laravel кэшируются, и если после заливки проекта на хостинг, его не очистили, используются те настройки, которые использовались раньше, когда вы разрабатывали проект. Нужно использовать команду очистки кэша
php artisan config:cache |
Если такой возможности нет, зайти в папку <корневая папка>/bootstrap/cache переименовать файл config.php на config.php_old и перезагрузить браузер. Всё должно заработать.