Сброс забытого root пароля на MySQL

На днях понадобился запуск когда-то установленного сервера MySQL на моём компьютере. Я использую при разработке чаще всего sqlite3, который неприхотлив в ресурсах и практически не требует обслуживания во время программирования. Но на этот раз снова понадобился сервер MySQL. Оказалось, что пароль не записал и со временем забыл. Сносить базу и переинсталлировать её заново не особо хотелось. Поэтому решил просто сбросить пароль администратора – пользователя root
Для этого я сначала остановил сервис (daemon process) сервера. На  MAC OS X это делается легко с панели настроек в разделе MySQL. Можно и по-старинке просто грохнуть:

Для Linux:

ps afx | grep mysql

дает, к примеру:

/bin/sh ./bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/development.pid

(На MAC OS X нужно писать опции к команде ps без минуса!)
Далее:

sudo kill `sudo cat /usr/local/mysql/data/development.pid`

Ещё раз

ps afx | grep mysql

чтобы убедиться, что с сервисом покончено.

Далее я запустил MySQL снова, но в фоновом режиме и без проверки пользовательских прав:

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

Затем зашел с кансоли:

mysql -u root mysql

и поменял пароль:

UPDATE user SET Password=PASSWORD("мой-новый-пароль") WHERE User="root";
FLUSH PRIVILEGES;

Потом вывел процесс на консоль и с помощью Ctrl+C его остановил:

fg 1

После запуска сервера MySQL в обычном режиме я снова получил полный доступ к его ресурсам.

Один комментарий к “Сброс забытого root пароля на MySQL”

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *