12 июня 2012 г. Linux MySQL

MySQL. Восстановление пароля при физическом доступе к серверу


Несколько раз уже приходилось восстанавливать доступ к MySQL, сегодня решил записать это. В принципе на странице http://dev.mysql.com/doc/refman/5.5/en/resetting-permissions.html все расписано, но хотелось это всетаки у себя записать.

И да, будет происходить не восстановление, а смена пароля. Но доступ вы всетаки восстановите!

Вариант первый

Запустим mysqld без применения привелегий и исправим пароль для пользователя root.

Останавливаем сервер MySQL и пробуем запустить mysqld без применения привелегий:
$ sudo /etc/init.d/mysql stop
$ mysqld --skip-grant-tables --skip-networking

После чего обновляем пароль для пользователя root:
$ mysql -uroot
mysql> UPDATE `mysql`.`user` SET `password`=PASSWORD('YOUR_NEW_PASSWORD') WHERE `user`="root";
mysql> FLUSH PRIVILEGES;

Запускаем MySQL-сервер:
$ sudo /etc/init.d/mysql start

Второй вариант

Если не получается по вервому варианту получить доступ к mysql, то мне помогает вариант с загрузкой init-скрипта, в котором будет происходит смена пароля для пользователя root.

Останавливаем MySQL-сервер и создаем файл "~/init.sql":

$ sudo /etc/init.d/mysql stop
$ nano ~/init.sql

Со следующим содержимым:

UPDATE `mysql`.`user` SET `password`=PASSWORD('YOUR_NEW_PASSWORD') WHERE `user`='root';
FLUSH PRIVILEGES;

После чего запускаем mysqld_safe, прерываем его и запускаем MySQL-сервер:

$ mysqld_safe --init-file=~/init.sql
$ sudo /etc/init.d/mysql start

Эти два варианта всегда работают, удачи!

Комментарии

Оставьте свой комментарий

Markdown