MySQL в Docker возвращает «Сервер запросил метод аутентификации, неизвестный клиенту» - PullRequest
0 голосов
/ 17 сентября 2018

Я использую веб-стек Docker для проекта Symfony 4.Конфигурация MySQL:

mysql:
    image: mysql
    container_name: sf4_mysql
    volumes:
        - .docker/data/db:/var/lib/mysql
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: ***
        MYSQL_USER: ***
        MYSQL_PASSWORD: ***

Вытащенный образ из Docker Hub - это MySQL 8, и когда я пытался создать базу данных с doctrine:database:create, я получил это сообщение:

2018-09-17T11: 53: 51 + 00: 00 [ошибка] Ошибка при выполнении команды «doctrine: database: create».Сообщение: «Возникла исключительная ситуация в драйвере: SQLSTATE [HY000] [2054] Сервер запросил аутентификацию, неизвестную клиенту» *

В AbstractMySQLDriver.php строка 126:

Исключительная ситуация произошла вдрайвер: SQLSTATE [HY000] [2054] Сервер запросил метод аутентификации, неизвестный клиенту

В строке 50 файла PDOConnection.php:

SQLSTATE [HY000] [2054] Сервер запросил метод аутентификации, неизвестныйклиенту

В строке 46 PDOConnection.php:

SQLSTATE [HY000] [2054] Сервер запросил метод аутентификации, неизвестный клиенту

В строке 46 PDOConnection.php:

PDO :: __ construct (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password]

Ответы [ 2 ]

0 голосов
/ 02 августа 2019

просто обновите ваш файл docker-compose, как указано ниже, и перестройте образ.

 mysql:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    container_name: sf4_mysql
    volumes:
        - .docker/data/db:/var/lib/mysql
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: ***
        MYSQL_USER: ***
        MYSQL_PASSWORD: ***
0 голосов
/ 17 сентября 2018

MySQL 8.0 использует «подключаемую аутентификацию» - вы можете решить эту проблему, выполнив следующие шаги:

  1. Откройте my.cnf и добавьте следующую запись (и перезапустите MySQL)

    [mysqld]

    default_authentication_plugin = mysql_native_password

  2. Создать пользователя (ваше имя в MYSQL_USER), используя правильный синтаксис 8.0 для генерации пароля (см. Ниже)

    ИДЕНТИФИЦИРОВАНО С mysql_native_password

Промойте pivileges и попробуйте снова.Это должно сработать.

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