Как поменять забытый пароль root в MySQL/MariaDB?
Иногда бывает, что вы забыли пароль root для MySQL или вам достался в администрирование сервер, владелец которого не помнит какой был пароль. Вам необходимо вернуть себе контроль над MySQL, т.е. либо сбросить либо поменять пароль root для MySQL. Ниже два способа как это можно сделать.
Обратите внимание, вам понадобятся права суперпользователя root в операционной системе (не путайте с root в MySQL), так ак все нижеперечисленные команды должны запускаться с правами суперпользователя.
Для MySQL8
1. Останавливаете MySQL Server, обычно командой:
systemctl stop mysqld
2. Авторизуетесь в системе как root и сразу же запускаете bash от пользователя mysql через sudo:
$ su - Пароль: [root@vitachi ~]# sudo -u mysql bash $
3. Запусукаем MySQL Server с командной строки, с опцией --skip-grant-tables
$ mysqld --skip-grant-tables
При этом, MySQL Server запустится в особом режиме, без проверки прав доступа на подключение.
4. В ДРУГОЙ КОНСОЛИ (потому что эта уже будет занята), подключаетесь к MySQL Server'у:
# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 8.0.35 MySQL Community Server - GPL Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
5. Вводите команду:
mysql> UPDATE mysql.user SET authentication_string=null WHERE User='root' AND Host='localhost'; mysql> exit
6. Далее находим запущенный нами процесс mysqld и прибиваем его:
# ps ax|grep mysql ... 5113 pts/4 Sl+ 0:02 mysqld --skip-grant-tables ... # kill 5113
7. Запускаем MySQL Server обычным способом:
# systemctl strt mysqld
8. Тееперь в него можно зайти без пароля:
# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.35 Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
9. И теперь уже можно поменять пароль на тот, который вам нравится с помощью тех операторов, которые вам нравятся, например:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '1KakoytoParol-';
Ниже описаны способы для более старых версий
1. С помощью init-файла
Создаём файл, например /root/mysql-init с содержимым:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('новый_пароль');
где вместо "новый_пароль" вы указываете желаемый пароль. Затем останавливаете MySQL/MariaDB сервер и запускаете команду:
mysqld_safe --init-file=/root/mysql-init &
Затем останавливаете MySQL/MariaDB, удаляете файл и запускаете MySQL/MariaDB обычным образом.
2. С помощью ключа --skip-grant-tables
Останавливаете MySQL/MariaDB. Запускаете команду
mysqld_safe --skip-grant-tables &
Далее команду:
mysql -u root -e "UPDATE mysql.user SET Password=PASSWORD('новый_пароль') WHERE User='root';"
И затем останавливаете MySQL/MariaDB и запускаете уже обычным образом.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 2300 просмотров