MySQL Community Server версии 8.0.18
PHP 7.2 (php-fpm)
Lumen 5.4.6
Все это в Docker: контейнер БД, контейнер PHP-FPM, контейнер NGINX.
Аккаунт БД имеет пароль через плагин MySQL
caching_sha2_password
,
Host: '%'
параметры аккаунтаmysql> SELECT * FROM mysql.user WHERE User='username'\G
*************************** 1. row ***************************
Host: %
User: username
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: caching_sha2_password
authentication_string: $A$005$=Qm5)
9M+I
xO/Zt8grd7Vfezr29cGSqgKdSJ6VcEPrPGl2Cx2qmcslLD
password_expired: N
password_last_changed: 2020-01-15 13:54:07
password_lifetime: NULL
account_locked: N
Create_role_priv: N
Drop_role_priv: N
Password_reuse_history: NULL
Password_reuse_time: NULL
Password_require_current: NULL
User_attributes: NULL
1 row in set (0.00 sec)
Иногда, не вижу пока четкой закономерности, кодга именно, вход в БД не проходит, в логах запись
lumen.ERROR: PDOException: SQLSTATE[HY000] [1045] Access denied for user 'username'@'172.18.0.5' (using password: YES) in /var/www/projectname/vendor/illuminate/database/Connectors/Connector.php:68
...
Next Illuminate\Database\QueryException: SQLSTATE[HY000] [1045] Access denied for user 'username'@'172.18.0.5' (using password: YES)
Захожу через родной CLI клиент mysql в контейнере MySQL, все нормально.
Обновляю страницу – на этот раз и через PHP_FPM все работает.
Есть еще крон скрипт, который тоже обращается к БД и добавляет запись.
docker-compose exec php-fpm ...
Смотрю, несколько дней была пауза без обновлений - видимо, тоже не проходил вход в БД. Выполняю ту же команду через терминал, работает, запись появилась.
Читал, что Lumen старой версии не поддерживает caching_sha2_password, но ведь вот, работает таки.
Что делать
и кто виноват?