Сброс пароля пользователя 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, но может кому пригодится. :-)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

точном -- с амперсандом не создается файл 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

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

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

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

Поправил. Спасибо. Написал я правильно, но отображалось неправильно. 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, как зайти в консоль сервера, то, думаю, что эта статья пока не для вас.