Здравствуйте, уважаемое сообщество StackOverflow!
Это мой первый раз, когда я запускаю развертывание Laravel, и я сталкиваюсь с проблемами, на которые, вероятно, есть простой ответ, который я не смог найти после многих часов исследований.
Laravel возвращает ошибку SQLSTATE[HY000] [2002] No such file or directory, когда я смотрю на свою рабочую домашнюю страницу, и я смог отследить проблему с базой данных с помощью следующей команды SSH:
mysqladmin -u root -p status
Что возвращает:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Итак, кажется, что Laravel регистрируется в моих локальных значениях .env, но у меня есть только один файл .env, настроенный для производства на сервере:
DB_CONNECTION=mysql
DB_HOST=my_distant_mysql_server_domain
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=user_name
DB_PASSWORD=xxxxxxxx
Я также настроил database.php, но безрезультатно:
'default' => env('DB_CONNECTION', 'mysql'),
[...]
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'my_distant_mysql_server_domain'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'database_name'),
'username' => env('DB_USERNAME', 'user_name'),
'password' => env('DB_PASSWORD', 'xxxxxxxx'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
Кто-нибудь здесь знает что-то, что я мог пропустить?
Я также пробовал все решения, предлагаемые в этой теме, но моя проблема не устранена: Приложение Laravel 5 продолжает использовать старое соединение с базой данных
К сожалению, мне приходится использовать доменное имя сервера mysql, а не IP-адрес, так как мой хостинг не предоставляет никакого IP-адреса.
Большое спасибо за помощь в этом вопросе :)
К сожалению, я уже пробовал это :/ Редактирую свой пост, извините!
На самом деле, я не пытался повторно запускать команды php artisan сразу после удаления сокетов! Это сработало!! Большое спасибо, @ChrisWhite :D






Благодаря Крису я понял, что эта проблема возникла из-за того, что я не удалил конфигурацию сокета при попытке подключения к удаленной базе данных, прежде чем (важный шаг!) повторно запустить следующие команды:
php artisan cache:clear
php artisan config:clear
php artisan config:cache
php artisan route:clear
php artisan route:cache
Выполнение этих двух шагов решило мою проблему :)
Уверен, что вы хотите удалить
unix_socketиз конфигурации удаленного сервера MySQL.