Как изменить пароль root`а на MySQL-сервер?
Пароль на MySQL-сервер – это такая вещь, которую если не записал, то когда он понадобиться, то не вспомнишь. Этот пароль на тех web-проектах, которые работают давно и не подвергаются частым модернизациям в плане кода, практически не используется. И установленный стойкий, серьезный пароль, благополучно забывается и когда требуется его вспомнить становиться невыносимо тяжко это сделать.
Конечно же никто не мешает записать этот пароль. Но что делать если MySQL-сервер с паролем есть, самого пароля нет?
Изменить пароль на сервер базы данных MySQL можно только непосредственно имея доступ к консоли самого сервера. В любом другом случае процесс восстановления является проблематичным.
В консоли сервера нужно выполнить 2 команды, который позволят изменить пароль и получить доступ к MySQL. Обычно суперпользователя root не используют для нужд сайта и изменение его пароля не приведет к каким-либо серьезным неполадкам, но автору приходилось работать с некоторыми сайтами, где CMS работала с базой данных посредством учетной записи root, что просто ужасно.
Для того, чтобы сменить пароль все команды, приведенные ниже выполняются от имени пользователя операционной системы root.
- Для начала тормозим MySQL-сервер. Для FreeBSD эта команда вот:
/usr/local/etc/rc.d/mysql-server stop
- После запускаем его в режиме проверки привилегий, который позволяет изменять пароль без ввода старого. Запустить в этом режиме можно командой:
mysqld_safe --skip-grant-tables &
- Далее не дожидаясь окончания выполнения, исполняем команду:
mysql -u root
В моем случае я запустил эту команду после строки:
120503 18:59:47 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql - Далее выбираем таблицу mysql, где хранятся все пароли и имена пользователей:
USE mysql;
- Далее меняем сам пароль командой:
UPDATE user SET password=PASSWORD("superpassword") WHERE User='root';
где superpassword – это и есть ваш новый пароль. Его, кстати, можно заменить на любой другой. - Сохраняем все изменения:
FLUSH PRIVILEGES;
- и выходим из консоли MySQL:
quit
- После этого стоит только перезагрузить MySQL:
/usr/local/etc/rc.d/mysql-server restart
и можно заходить под новым паролем.
После этих простых манипуляций пароль пользователя root для доступа к MySQL-серверу будет вам известен и его уж после этого можно и записать.
Теги: MySQL