Запустите MySql с помощью docker-compose;ошибка входа: «Сервер запросил неизвестный клиенту метод аутентификации» - PullRequest
0 голосов
/ 23 мая 2018

Мне нужно запустить докерский контейнер MySql.Следуя инструкциям в официальном репозитории Docker MySql (https://hub.docker.com/_/mysql/),), я сделал следующие шаги:

Шаг 1. Я создал файл stack.yml следующим образом, затем запустил: docker-compose -f stack.yml up

version: '3.1'

services:

  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

Шаг 2. Перейдите к http://localhost:8080/

Отображается форма входа в систему:

Система: MySql

Сервер: db

Затем я ввожу root в качестве имени пользователя и пример в качестве пароля и оставляю текстовое поле базы данных пустым, затем нажимаю Login . Отображается ошибка: « SQLSTATE [HY000] [2054] Сервер запросил метод аутентификации, неизвестный клиенту »

Любая подсказка / подсказка о том, как это исправить, будет принята с благодарностью.Заранее спасибо!

=========

Следующее из терминала:

docker-compose -f stack.yml up

Starting hibernate_db_1      ... done
Starting hibernate_adminer_1 ... done
Attaching to hibernate_db_1, hibernate_adminer_1
db_1       | 2018-05-23T07:34:08.186378Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
db_1       | 2018-05-23T07:34:08.186678Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.11) starting as process 1
db_1       | mbind: Operation not permitted
db_1       | mbind: Operation not permitted
adminer_1  | PHP 7.2.5 Development Server started at Wed May 23 07:34:08 2018
db_1       | 2018-05-23T07:34:09.011741Z 0 [System] [MY-010229] [Server] Starting crash recovery...
db_1       | 2018-05-23T07:34:09.012443Z 0 [System] [MY-010232] [Server] Crash recovery finished.
db_1       | 2018-05-23T07:34:09.214122Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
db_1       | 2018-05-23T07:34:09.226905Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
db_1       | 2018-05-23T07:34:09.255716Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.infoschema@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.256491Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.256797Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.257188Z 0 [Warning] [MY-010315] [Server] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.257654Z 0 [Warning] [MY-010323] [Server] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.258015Z 0 [Warning] [MY-010323] [Server] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.258420Z 0 [Warning] [MY-010311] [Server] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.273119Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.273798Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1       | 2018-05-23T07:34:09.299367Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.11'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.

Когда я выполняю браузер на http://localhost:8080,, терминал печатает:

adminer_1  | [Wed May 23 07:34:28 2018] ::ffff:172.18.0.1:35388 [200]: /

После того, как я нажимаю на кнопку входа, терминал печатает:

adminer_1  | [Wed May 23 07:34:41 2018] ::ffff:172.18.0.1:35396 [302]: /
adminer_1  | [Wed May 23 07:34:41 2018] ::ffff:172.18.0.1:35398 [403]: /?server=db&username=root

Ответы [ 2 ]

0 голосов
/ 23 мая 2018
Администратор

совместим с mysql8 с использованием некоторых расширений, как указано в требованиях на домашней странице для администратора.https://www.adminer.org/

Администратор с mysql 4.1, 5.0, 5.1, 5.5, 5.6, 5.7, 8.0 через расширения: mysql, mysqli, pdo_mysql

Таким образом, вы можете вернуться обратнодо mysql-5.7

    version: '3.1'

    services:

      db:
        image: mysql:5.7
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: example
          MYSQL_USER: user
          MYSQL_PASSWORD: pass

      adminer:
        image: adminer
        restart: always
        ports:
          - 8080:8080
0 голосов
/ 23 мая 2018

Возможно, проблема с хэшами, которые используются для хранения пароля.Клиент mysql, используемый администратором, может быть несовместим с последней версией mysql.

Попробуйте закрепить правильные версии в docker-compose.yml и убедитесь, что контейнер администратора поддерживает поддерживаемую версию mysql.(Важно: даже если Adminer поддерживает последнюю версию MySQL, контейнер может использовать старый клиент MySQL)

Примеры в hub.docker.com для администратора показывают, что они прикрепляют mysql к 5.6.Вы можете попробовать сделать это, чтобы проверить, работает ли ваша установка.(https://hub.docker.com/_/adminer/)

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