7 июня 2018 | Категория:

mysql 8.0.11 и его долбаное “The server requested authentication method unknown to the client [caching_sha2_password]“

vlcsnap-2018-06-08-00h11m21s538

Итак, на дворе 2018 год, вышла новая версия мускула, вы наслушались песен о том, как там все круто и решили это дело затестить. Скорее всего вы, как и я, быстренько проскочили установку и после попытки подключитсья к базе начали получать вышеозначеную ошибку.

Почему она возникает, можно почитать в инете (если коротко – нечего было щелкать клювом во время установки, вместо дефолтного типа авторизации надо было выставлять старый, потому что новый никакие библиотеки ещё не поддерживают, только через консоль можно войти).

Как же порешать этот вопрос? Лехко! Выставляем в конфиге старый тип авторизации и всё начинает работать.

default_authentication_plugin = mysql_native_password

НО ЕСЛИ У ВАС НЕ MYSQL 8.0.11! То ли это баг, то ли фича, но в этой версии смена дефолтного типа авторизации не влияет на уже созданных пользователей (в том числе и на рута, сука). Што же делать в этом случае?

В сети можно найти кучу рекомендаций: создать нового пользователя, а рута не трогать (костыль – понятно, что под рутом никто работать не собирается, но есть же средства администрирования, которые тоже отвалились), разные запросы, которые нифига не работают и т.д. Можно потратить день на поиски, а можно сразу взять то, что сработает:

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘test’;

И больше не надо ебать себе голову.

[UPD] для тех, кто не понял – test это новый пароль пользователя, который можно (и нужно) заменить тем паролем, который нужен вам

Подсмотрено тута https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

Похожие записи:

  1. полное декартово произведение в mysql или когда каждый с каждым
  2. Словарь Ожегова в виде mysql-дампа

Написать комментарий