Скидання пароля root в mysql і mariadb
Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!
Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив
- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I
Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!
Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!
Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!
Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.
Задайте питання в службу підтримки 24/7/365
Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями
Даний посібник допоможе скинути пароль користувача root в MySQL і MariaDB.
вимоги
Щоб відновити пароль MySQL або MariaDB, потрібен:
- Доступ до сервера, на який встановлена СУБД.
- Користувач з підтримкою sudo.
1: Визначення версії MySQL і MariaDB
Більшість сучасних дистрибутивів Linux поставляються з MySQL або MariaDB (аналог MySQL, повністю сумісний з цієї БД). Спосіб відновлення пароля багато в чому залежить від версії СУБД.
Щоб дізнатися версію програми, введіть:
На екрані з'явиться такий висновок:
# MySQL
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
# Або MariaDB
mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1
Запишіть назву і версію СУБД: ці дані стануть в нагоді в подальшому.
2: Зупинка сервера БД
Щоб змінити пароль root, вимкніть сервер баз даних.
# MySQL
sudo systemctl stop mysql
# MariaDB
sudo systemctl stop mariadb
3: Перезапуск бази даних без перевірки привілеїв
Якщо ви запустите MySQL або MariaDB, не завантажуючи інформацію про користувача привілеї, ви зможете отримати доступ до командного рядка бази даних з привілеями суперкористувача без пароля.
Для цього потрібно запобігти завантаження таблиць привілеїв, в яких зберігаються дані про привілеї користувача. Такий метод доступу піддає сервер небезпеки, тому дуже важливо заборонити підключення мережі та інших клієнтів.
Щоб запустити БД без таблиць привілеїв, введіть:
sudo mysqld_safe --skip-grant-tables --skip-networking
Амперсанд () в кінці команди переведе її в фоновий режим, і ви зможете продовжити роботу з терміналом.
Підключіться до БД як root. Забули пароль Реєстрація буде запитано:
Ви отримаєте доступ до командної оболонки бази даних:
# MySQL
Type 'help;' or '\ h' for help. Type '\ c' to clear the current input statement.
# MariaDB
Type 'help;' or '\ h' for help. Type '\ c' to clear the current input statement.
4: Зміна пароля root
У сучасних версіях MySQL змінити пароль користувача root можна за допомогою команди ALTER USER. Однак дана команда не спрацює без таблиць привілеїв, які ви відключили, щоб отримати доступ до БД.
Перезапустіть таблиці привілеїв за допомогою команди:
Тепер можна змінити пароль root.
В MySQL 5.7.6+ і MariaDB 10.1.20+ використовуйте команду:
ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'new_password';
Примітка. Якщо команда ALTER USER не працює, це зазвичай свідчить про більш серйозну проблему. Ви можете спробувати змінити пароль за допомогою UPDATE ... SET.
UPDATE mysql.user SET authentication_string = PASSWORD ( 'new_password') WHERE User = 'root' AND Host = 'localhost';
В MySQL 5.7.5, MariaDB 10.1.20 і більш ранніх версіях СУБД введіть:
SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ( 'new_password');
Примітка. Замість new_password вкажіть новий пароль користувача root.
Після цього потрібно перезапустити таблиці привілеїв.
Після поновлення пароля на екрані повинен з'явитися такий висновок:
Query OK, 0 rows affected (0.00 sec)
Пароль успішно змінений, так що тепер можна перезапустити сервер бази даних.
5: Перезапуск сервера
Зупиніть сервер баз даних, запущений вручну в розділі 3. Ця команда знаходить (ID процесу) MySQL або MariaDB і відправляє SIGTERM, щоб вийти після виконання операції очищення.
# MySQL
sudo kill `cat / var / run / mysqld / mysqld.pid`
# MariaDB
sudo kill `/ var / run / mariadb / mariadb.pid`
Тепер можна запустити знову сервіс:
# MySQL
sudo systemctl start mysql
# MariaDB
sudo systemctl start mariadb
Переконайтеся, що новий пароль працює:
Команда повинна запросити пароль користувача root.
висновок
Тепер ви знаєте, як відновити доступ суперкористувача до сервера MySQL і MariaDB.
Пам'ятайте, що новий пароль повинен бути складним і унікальним.