Laravel 5.5: производственная среда входит в MySQL с локальными учетными данными, хотя .env и database.php настроены для моего удаленного сервера mysql

Здравствуйте, уважаемое сообщество 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-адреса.

Большое спасибо за помощь в этом вопросе :)

Уверен, что вы хотите удалить unix_socket из конфигурации удаленного сервера MySQL.

Chris White 03.05.2019 15:57

К сожалению, я уже пробовал это :/ Редактирую свой пост, извините!

mbuss 03.05.2019 16:04

На самом деле, я не пытался повторно запускать команды php artisan сразу после удаления сокетов! Это сработало!! Большое спасибо, @ChrisWhite :D

mbuss 03.05.2019 16:09
Стоит ли изучать 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
212
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Благодаря Крису я понял, что эта проблема возникла из-за того, что я не удалил конфигурацию сокета при попытке подключения к удаленной базе данных, прежде чем (важный шаг!) повторно запустить следующие команды:

php artisan cache:clear

php artisan config:clear

php artisan config:cache

php artisan route:clear

php artisan route:cache

Выполнение этих двух шагов решило мою проблему :)

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