Сборка докера: ошибка: ER_NOT_SUPPORTED_AUTH_MODE: клиент MySQL - PullRequest
0 голосов
/ 24 апреля 2018

Когда я пытаюсь docker-compose -f docker-compose-now.yml up я получаю это сообщение

error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Теперь я прочитал это решение:

use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';

от: https://github.com/mysqljs/mysql/issues/1507

но как я могу поместить его в мой docker-compose-now.yml файл в entrypoints?

Моя среда находится в этом файле, и когда я пытаюсь:

entrypoints: sh "update user set authentication_string=password(''), plugin='mysql_native_password' where user='root'"

, я получаю только другую ошибку.

Как мне решить эту проблему, пожалуйста?

1 Ответ

0 голосов
/ 25 апреля 2018

Задача

Для упрощения, то, что вы делаете в скрипте точки входа, фактически выполняется в оболочке sh.Команды, которые вы хотите выполнить, должны выполняться внутри оболочки mysql.

Решение

Для запуска команд mysql ваша точка входа должна иметь следующую команду:

mysql -u root -p [root-password] -e "update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';"

Если вы хотите сделать это на mysql дБ, вы можете сделать

mysql -u root -p [root-password] mysql -e "update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';"

Объяснение

В этой команде сначала вы вводите в оболочке mysql команду mysql -u -p изатем вы выполняете команду sql, используя флаг -e (он обозначает выполнение).Все, что приходит после -e, выполняется в оболочке mysql (например, запросы и т. Д.).За подробностями и примерами обращайтесь к этому:

https://dev.mysql.com/doc/refman/8.0/en/command-line-options.html

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