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

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

Кто-нибудь здесь знает о чем-то, что я мог пропустить?

Я также перепробовал все разрешения, предложенные в этой теме, но моя проблема сохраняется: Laravel5 приложение продолжает использовать старое соединение с базой данных

К сожалению, мне приходится использовать доменное имя сервера mysql, а не IP-адрес, поскольку мой хостинг не предоставляет IP-адреса.

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

1 Ответ

1 голос
/ 03 мая 2019

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

php artisan cache:clear

php artisan config:clear

php artisan config:cache

php artisan route:clear

php artisan route:cache

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...