Як скинути пароль root для mysql або mariadb

Ця інструкція охоплює скидання пароля root як для старіших, так і для нових версій MySQL і MariaDB.

Крок 1 - Визначаємо версію системи управління базою даних

Найсучасніші дистрибутиви Linux поставляються з MySQL або MariaDB, остання є повністю сумісною заміною MySQL. Залежно від використовуваної СУБД і її версії, вам потрібно використовувати різні команди для відновлення пароля рута.

Ви можете перевірити вашу версію наступною командою:

Для MySQL ви побачите щось на зразок:

Для MariaDB висновок буде приблизно таким:

Запам'ятайте яка база даних і який версії у вас запущена, оскільки вони стануть в нагоді нам пізніше. Далі вам потрібно зупинити базу даних для ручного доступу до неї.

Крок 2 - Зупинка сервера бази даних

Для зміни пароля root ви повинні заздалегідь відключити сервер бази даних.

Для MySQL і MariaDB ви можете зробити це:

Після того, як сервер зупинений, ви вручну отримаєте до нього доступ для скидання пароля рута.

Крок 3 - Перезапуск сервера бази даних без перевірки дозволів

Якщо ви запускаєте MySQL і MariaDB без завантаження інформації про привілеї користувача, вона дозволить вам без введення пароля отримати доступ до командного рядка бази даних з привілеями рута. Це дозволить вам отримати доступ до бази даних без знання парольної фрази.

Щоб це зробити, вам потрібно не дати базі даних завантажити таблиці привілеїв, які містять інформацію про привілеї користувача. Оскільки це несе ризик безпеки, ви також повинні уникнути мережевої активності, щоб не допустити підключення інших клієнтів.

Запустіть базу даних без завантаження таблиць привілеїв і без доступу до мережі:

Амперсант на кінці цієї команди зробить так, що процес запуститься у фоновому режимі, тому ви зможете продовжувати використовувати ваш термінал.

mysqld_safe Directory '/ var / run / mysqld' for UNIX socket file do not exists.

Якщо ви бачите помилку

Те виконайте наступні команди:

І запустіть ще раз:

Тепер ви можете підключитися до бази даних як користувач рут, у якого не запитають пароль.

Ви відразу ж побачите запрошення оболонки бази даних.

Запрошення командного рядка MySQL:

Запрошення командного рядка MariaDB:

Тепер, коли у вас є рут доступ, ви можете змінити пароль рута.

Крок 4 - Зміна пароля рута

Простим способом зміни пароля рута для сучасних версій MySQL є використання запиту ALTER USER. Проте, ця команда не буде працювати прямо зараз, оскільки таблиці привілеїв незавантажені.

Давайте скажемо сервера баз даних перевантажити таблиці привілеїв ввівши команду FLUSH PRIVILEGES.

Тепер дійсно ми можемо поміняти пароль рута.

Для MySQL 5.7.6 і новіше, а також для MariaDB 10.1.20 і новіше використовуйте наступну команду:

Для MySQL 5.7.5 і старіша, а також для MariaDB 10.1.20 і старіше використовуйте:

Не забудьте поміняти новий_пароль на обраний вами новий пароль.

Примітка: якщо команда ALTER USER не працює, то це зазвичай є ознакою більш серйозної проблеми. Проте, замість цієї ви можете спробувати UPDATE ... SET для скидання root пароля.

Після цього не забудьте перевантажити таблиці привілеїв.

У будь-якому випадку ви повинні бачити підтвердження, що команда успішно виконана. висновок:

Виходимо з сесії:

Пароль змінений, ви можете зупинити запущений вручну екземпляр сервера бази даних і перезапустити його як це було раніше.

Крок 5 - Звичайний перезапуск сервера бази даних

Для початку, зупиніть екземпляр сервера бази даних, який ви запустили вручну на Кроці 3. Ця команда шукає PID або ID процесу для процесу MySQL або MariaDB і відправляє SIGTERM для повідомлення процесу м'яко вийти після завершення операцій очищення.

Для MySQL і MariaDB використовуйте:

А після перезапуску сервіс використовуючи systemctl.

Тепер ви можете підтвердити, що новий пароль працює, запустіть:

Ця команда повинна викликати запрошення в який потрібно ввести новий пароль. Введіть його, ви повинні отримати доступ до інтерфейсу командного рядка бази даних, як це зазвичай і відбувається.

висновок

Тепер ви відновили адміністративний доступ до сервера MySQL або MariaDB. Переконайтеся, що новий пароль рута, який ви вибрали, безпечний і зберігайте його в надійному місці.