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

Наша память, к сожалению, нас иногда подводит. И мы никак не можем вспомнить железно, как нам кажется, отпечатанный в памяти пароль. Вы можете сказать, что нужно иметь записную книжку а лучше две, и конечно будете правы. Но... Тем не менее иногда все-таки возникает необходимость восстановления забытого, либо утраченного пароля. Сегодня я опишу простой метод восстановления пароля суперпользователя root для базы данных mysql.

Для этого необходимо выполнить всего несколько шагов.
1. Останавливаем mysql.
service mysqld stop
2. Запускаем mysql следующей командой:

/usr/bin/mysqld_safe --skip-grant-tables --user=root &
3. Запускаем клиента mysql
mysql -u root
4. Выполняем sql запрос
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
где newpwd - новый пароль.
5. Применяем изменения
FLUSH PRIVILEGES;
6. Выходим из mysql клиента выполнив в нем команду exit
7. Перегружаем mysql сервер.
service mysqld restart

Ну и все на этом. Пароль суперпользователя root для базы данных mysql изменен. Добавлю, что конечно же этот метод описан в официальном руководстве по mysql, но может кому пригодится. :-)

Отличная статья - огромное

Отличная статья - огромное спасибо

Спасибо!

Спасибо!

а если в таблице mysql нет

а если в таблице mysql нет никаких пользователей, то что делать?

Пасибо. Конкретно, доходчиво.

Пасибо. Конкретно, доходчиво. Правда при запуске выскочила ошибка, но REBOOT сервер и все стало хорошо.

Спасибо добрый человек!

Спасибо добрый человек! :)

Внимание!!! Вместо service

Внимание!!!
Вместо service mysqld stop надо писать service mysql stop ИНАЧЕ НИЧЕГО НЕ РАБОТАЕТ
UBUNTU 10.04 SERVER
автор, исправьте статью срочно

в убунте вообще это через

в убунте вообще это через init.d идет

Поставьте нормальный

Поставьте нормальный серверный дистрибьютив и будет Вам счастье

Благодарю автора за

Благодарю автора за замечательную инструкцию.

все по инстукции сделал.

все по инстукции сделал. после
UPDATE mysql.user SET Password=PASSWORD"мой пароль" WHERE User='root';

выдает
bash: syntax error near unexpected token `('

и что делать теперь?! :(

а может стоит зайти в консоль

а может стоит зайти в консоль Мускуля а то как то из коммандной строки мускул не воспринимает запросы ИМХО

скобки обязательны

скобки обязательны :)

точном -- с амперсандом не

точном -- с амперсандом не создается файл mysql.sock, можно запускать без него и нажимать Ctrl+z

штуки на которые я напоролся

штуки на которые я напоролся -
1) амперсанд в конце “/usr/bin/mysqld_safe –-skip-grant-tables &” не нужен.
2) эта команда подвешивает консоль в которой была запущена, остальные комнады даём через новую консоль.
3) UPDATE mysql.user SET Password=PASSWORD(’newpwd’) WHERE User=’root’; - именно это и значит! я почти 20 минут вводил варианты, которые можно описать как UPDATE mysql.user SET Password=’newpwd’ WHERE User=’root’;

Небольшая поправочка. При

Небольшая поправочка. При попытке сделать аналогичное в Fedora 8, при установке нового пароля сервер ругался "ERROR 1046 (3D000): No database selected". После перезапуска консоли с указанием базы: mysql -u root mysql все прошло удачно.

Движок приобразовует кавычки

Движок приобразовует кавычки =/
Вобщем коректная кавычка ставитца нажатием буквы "э" на английской раскладке.

В строке: UPDATE mysql.user

В строке:
UPDATE mysql.user SET Password=PASSWORD(’newpwd’) WHERE User=’root’;
не коректные кавычки, правильный вариант:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

Отличная инфа. Вот для

Отличная инфа.
Вот для Дебиан кому надо какие команды - посмотреть можно здесь www.opennet.ru/tips/info/1177.shtml

Спасибо за статью :) только

Спасибо за статью :) только что пригадилась на практике :) вобще за сайтик спасибо нередко выручал :)

Поправил. Спасибо. Написал я

Поправил. Спасибо. Написал я правильно, но отображалось неправильно. Wordpress два минуса при отображении в один минус трансформирует.

В статье ошибка, написано

В статье ошибка, написано "/usr/bin/mysqld_safe –skip-grant-tables –user=root &", а нужно
"/usr/bin/mysqld_safe –-skip-grant-tables –-user=root &" иначе будет выдавать ошибку и работать не будет.

Возможно у тебя mysqld_safe

Возможно у тебя mysqld_safe находится по другому пути. Не в /usr/bin/. В любом случае не запускается mysql сервер. Попробуй командой whereis mysqld_safe узнай путь к твоему файлу mysqld_safe.

Чё то у меня на 3м шаге

Чё то у меня на 3м шаге обламывает.
выполняю mysql -u root
пишет
[3+] stopped ./mysqld_safe --skip-grant-tables --user=root &

Чё то у меня на 3м шаге

Чё то у меня на 3м шаге обламывает.
выполняю mysql -u root
пишет
[3+] stopped ./mysqld_safe --skip-grant-tables --user=root &

Вероятно, у вас новая инсталляция mysql, в таком случае необходимо выполнить команду mysql_install_db --user=mysql
А пароль рута будет пустой и значит, его менять не нужно. Проверить можно, прочитав лог-файл в /var/lib/mysql/
У меня там была строчка
101013 3:17:20 [ERROR] Fatal error: Can't open and lock privilege tables: Table
'mysql.host' doesn't exist

Я не могу зайти в консоль

Я не могу зайти в консоль MySQL потому что она просит этот самый пароль, что мне делать??

Пишут всякую чушь: "Наша

Пишут всякую чушь: "Наша память, к сожалению, нас иногда подводит. И мы никак не можем вспомнить железно" и т.д.
А по сути?
1. Где пишем:
service mysqld stop
В каком -таком окне?
2. А если окно сервера mysql не открывается, тогда что?
Раиса

Раиса, зачем Вы читаете такие

Раиса, зачем Вы читаете такие вещи ?
Пишут что память подводит верно ведь, а не мы впервые услышали что есть mysql и решил с ним чёта сделать..

Уважаемая, Раиса. Если вы не

Уважаемая, Раиса. Если вы не в курсе куда писать эти команды, и что такое командная строка, что такое putty, как зайти в консоль сервера, то, думаю, что эта статья пока не для вас.

Подскажите, пожалуйста, а

Подскажите, пожалуйста, а если mysqld_safe нет в usr/bin/
В этой папке 3 файла с расширением .exe
Может прописывать в Z:\usr\local\mysql-5.1\my

Речь идет о системе Linux.

Речь идет о системе Linux.