MySQL: как поменять забытый пароль root, не угробив базы?

Аватар пользователя DRVTiny

Я напрочь забыл, какой у меня пароль доступа к MySQL, поскольку очень редко пользуюсь базами данных (собственно, MySQL пока что используется исключительно для подсчёта трафика на шлюзе). Но теперь вот мне понадобилось поставить DSPAM в связке с P3Scan, а для этого мне нужно сохздать новую базу данных, чего я, не имея администраторского пароля, сделать не могу. Вопрос в следующем: как мне поменять (или удалить. Безопасность не принципиальна, поскольку MySQL работает локально) пароль администратора MySQL, не удаляя /var/lib/mysql и не переинмициализируя всё, в том числе базу для учёта трафика, заново?
Заранее очень признателен, искренне Ваш, DRVTiny Улыбка

Аватар пользователя Mimino

Re: MySQL: как поменять забытый пароль root, не угробив базы

Как насчет phpmyadmin? Не помню именно про пароль, но настройки там весьма развитые.

Аватар пользователя DRVTiny

Re: MySQL: как поменять забытый пароль root, не угробив базы

Спасибо, попробую Улыбка
Но пароль, мне кажется, phpMyAdmin поменять не сможет...

Аватар пользователя Archont

Re: MySQL: как поменять забытый пароль root, не угробив базы

Иногда администратор не может подключиться к серверу из-за того, что забыл пароль пользователя root или в процессе изменения случайно присвоил ему не то значение, которое предполагал. В этом случае необходимо восстановить контроль над сервером, чтобы заново установить пароль. Это можно сделать следующим образом.
1) Завершите работу сервера.' Зарегистрировавшись как пользователь root на компьютере с сервером, администратор может завершить работу сервера с помощью команды kill. Используя команду ps, можно отыскать ID-номер процесса сервера. С этой же целью можно просмотреть PID-файл, который обычно располагается в
каталоге данных.
Лучше сначала попытаться завершить работу сервера с помощью обычной команды kill, чем сразу посылать серверу сигнал TERM и проверять, правильно ли он отреагировал на нее, завершив работу. В этом случае все таблицы и журналы будут обработаны и закрыты корректно. Если в работе сервера не все нормально и он не отвечает на сигнал завершения работы, можно воспользоваться командой kill -9 для принудительного закрытия. Однако к ее помощи следует прибегать в самую последнюю очередь, поскольку в этом случае существует риск оставить таблицы поврежденными.
Если работа сервера все же была завершена с помощью команды kill -9, настоятельно рекомендуется перед следующим запуском сервера проверить таблицы с помощью команд myisamchk и isamchk (см. главу 13, "Поддержка и восстановление баз данных").
2) Перезапустите сервер с помощью опции --skip-grant-tables. Это укажет серверу не использовать таблицы разрешений для проверки соединений и позволит подключиться с полномочиями пользователя root без пароля. После удачного подключения измените пароль пользователя root. Как это сделать, рассказывается в разделе
"Защита новой инсталляции MySQL" ранее в этой главе.
3) Используя команду mysqladmin flush-privileges, укажите серверу снова перезагрузитъся, но с применением таблиц разрешений. Если используемая версия mysqladmin не поддерживает опцию flush-privileges, попробуйте воспользоваться командой reload.

Из "MySQL" Поля Дюбуа.

Аватар пользователя DRVTiny

Re: MySQL: как поменять забытый пароль root, не угробив базы

Archont, Mimino: спасибо Вам огромное! Улыбка
А я-то уже вознамерился весь /var/lib/mysql сносить!

Аватар пользователя ASP_Tema

Re: MySQL: как поменять забытый ...

покороче:
1. перезапустить mysqld с опцией --skip-grant-tables. Для этого идем в /etc/init.d стопорим наш сервер mysqld stop и стартуем его mysqld ----skip-grant-tables
2. mysqladmin -h хост -u пользователь password 'новый пароль'. например mysqladmin -h localhost -u root password root

Аватар пользователя z10dej

Re: MySQL: как поменять забытый ...

Еще проще.... (у меня прокатило)

su -l mysql -c  "mysqladmin -h localhost -u root password passwd"
RSS-материал