Сброс пароля пользователя root в MySQL

Сбросить пароль для пользователя root в MySQL не просто, а очень просто. Для этого надо остановить базу:

$ sudo service mysql stop

Теперь запустим базу без проверки привилегий:

$ sudo mysqld_safe --skip-grant-tables &

Теперь можно зайти в базу и поправить пароль:

$ mysql -u root

После этого будет доступна консоль MySQL. Выполняем обновление пароля:

mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('password');

Иногда установка нового пароля заканчивается ошибкой:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

Это ошибка в MySQL и тогда пароль можно установить другой командой:

mysql> UPDATE mysql.user SET authentication_string=password('password') WHERE user='root';

Дальше сбрасываем привилегии и перезапускаем сервер в нормальном режиме:

mysql> FLUSH PRIVILEGES;
mysql> exit;
$ sudo mysqladmin -u root -p shutdown
$ sudo service mysql start

Теперь можно логиниться в базу обычным образом:

$ mysql -u root -p



Комментарии: