Иногда во время инсталляции MySQL пользователь не задает пароль root, тогда в качестве авторизации используется метод unix_socket. Если используется именно авторизация, в качестве пользователя root сможет авторизоваться только суперпользователь системы или пользователь с правами sudo.
Во время использования mysql_secure_installation будет предпринята попытка изменить пароль, в таком случае от mysql вы получите ошибку SET PASSWORD has no significance for user 'root'@'localhost'. Как ее решить и устранить, расскажем дальше.
Полное название ошибки выглядит следующим образом:
SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
Переводится ошибка как:
Выполнять метод SET PASSWORD для 'root'@'localhost' нет смысла потому что выбранный метод авторизации не поддерживает сохранение данных авторизации. Если вы хотите изменить параметры авторизации используйте ALTER USER.
Способ авторизации unix_socket не сохраняет пароли, он выполняет авторизацию не посредством пароля, он проверяет соответствие конкретного пользователя условиям суперпользователя. При этом просто пропустить настройку пароля root (если он не был задан) у пользователя нет возможности. Вот почему программа не позволяет вам пройти дальше. Исправить проблему можно, выполнив подключение к MySQL.
Также нужно поменять метод авторизации и заодно пароль:
sudo mysql
В окружении SQL нужно исполнить такую команду:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ваш_пароль';
Закрываем клиент MySQL командой:
exit;
После нужно запустить mysql_secure_installation, ввести пароль root. Дальше можно без проблем закончить настройку. Обращаем внимание, что после этого вы сможете подключится к mysql, используя sudo без пароля, поскольку активирован метод авторизации по паролю. Для возвращения прежних настроек после выполнения mysql_secure_installation выполните подключение к MySQL.
Используем пароль и выполняем:
ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
Вот и все - инструкция завершена.
Примените скидку, вставив промокод в специальное поле при оформлении заказа:
Примените скидку, вставив промокод в специальное поле при оформлении заказа: