Переход к предыдущей публикации Ежесуточный бекап MySQL “Старый” Новый Год Переход к следущей публикации

MySQL: Восстановление пароля root

Воскресенье, 13 января, 2008 23:01:08 EET

Исправления от 23 марта, 2009 10:04:43

MySQL Logo В процессе перенос этого блога на другой сервер. Бекап с файлами залит, архив распакован. Осталось всего чуть-чуть: создать базу на MySQL и скормить ей дамп.

- Ага… Не тут то было. Я кажется не помню root пароль к базе - пришло в голову… Пароль я действительно забыл (ну с кем не бывает?), а тот человечек, который его вероятнее всего помнит, уже скорее всего отдыхает и звонить ему в столь поздний час как-то невежливо.

Когда-то давно, когда я только только узнал, что такое сервер базы данных MySQL приключилась аналогичная история. Тогда я проблему решил достаточно быстро. Я просто прибил полностью папку с системной базой mysql:

# rm -rf /var/db/mysql/mysql

и заново создал системные базы. Но этот способ однозначно жестокий, а главное, глупый. Есть решение куда более аккуратное и красивое.

Итак:

Останавливаем сервер MySQL:

# /usr/local/etc/rc.d/mysql-server.sh stop
Stopping mysql.
Waiting for PIDS: 83119, 83119.

Запускаем mysqld с параметром –skip-grant-tables, указав стартовать от имени пользователя mysql (или от другого непривелигерованного юзера - но никак не от root’а), иначе mysql сославшись на пункт Security в мануале, пошлет Вас в сад:

# /usr/local/libexec/mysqld –user mysql –skip-grant-tables
080114  21:55:24  InnoDB: Started; log sequence number 0 94091855
080114  21:55:24 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: ‘5.1.22-rc’  socket: ‘/tmp/mysql.sock’  port: 3306  FreeBSD port: mysql-server-5.1.22

Все. Дальше подключаемся к серверу, говорим use mysql, и рихтуем таблицу user, очищая в ней поле Password для пользователя root@localhost. Пароль снесли. Перезапускайте mysql сервер (у меня иначе как через killall -9 mysqld перезапуститься не получилось…) и входите пользователем root@localhost, устанавливайте такой пароль, который Вы больше не забудете.

Похожие публикации

1 комментарий

alibek 22 мая, 2009 12:30:38 EEST .:. ID #10799 .:.

После смены пароля надо flush privileges выполнить.

Возник вопрос по этой теме, или есть что добавить? Говорите!

  1. Зарегистрированным пользователям вводить защитный код (captcha) не приходится.
  2. Загрузить свою аватарку Вы сможете, зарегистрировавшись на сервисе www.gravatar.com
Публикуя комментарий Вы подтверждаете, что ознакомились c Правилами и принимаете их!
HOMOSAPIENS ONLY! :)