Сброс пароля пользователя 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