Іноді під час інсталяції 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 'password';
Закриваємо клієнт MySQL командою:
exit;
Після потрібно запустити mysql_secure_installation
, ввести пароль root
. Далі можна без проблем закінчити налаштування. Звертаємо увагу, що після цього ви зможете підключиться до mysql, використовуючи sudo без пароля, оскільки активовано метод авторизації за паролем. Для повернення колишніх налаштувань після виконання mysql_secure_installation
виконайте підключення до MySQL.
Використовуємо пароль і виконуємо:
ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
Ось і все - інструкцію завершено.