Почему (иногда) MySQL 8 не пускает пользователя через PHP 7.2 и Lumen 5.4?

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, но ведь вот, работает таки.

Что делать и кто виноват?
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы