|
|
Ежесуточный бекап MySQL | “Старый” Новый Год |
|
|
MySQL: Восстановление пароля root
В процессе перенос этого блога на другой сервер. Бекап с файлами залит, архив распакован. Осталось всего чуть-чуть: создать базу на 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, устанавливайте такой пароль, который Вы больше не забудете. ![]()
Ключевые слова
FreeBSD | mysql | mysqld | password | root | unix | базы данных | восстановление пароля | пароль | сервер


