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

Вопросы, касающиеся установки и настройки всех программ сервера хотспота
Ответить
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

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

Сообщение Dmitry »

Перед выполнением описанных действий примите во внимание следующее:
  • В системе (в самом Linux-е) в расписании заданий прописана проверка того, запущены ли службы, необходимые для работы биллинга. Проверка выполняется каждые три минуты (точнее, каждую кратную трем минуту, т.е. в хх:00, хх:03, хх:06, хх:09, хх:12 и т.д.). Если проверка "видит", что необходимая служба (демон) не работает, то скрипт проверки пытается ее принудительно запустить.
  • Сервер баз данных MySQL входит в число служб, необходимых для работы биллинга, поэтому проверка факта его работы (и при необходимости, перезапуск) также включены в этот скрипт!
Вам необходимо остановить сервер баз данных MySQL. Принимая во внимание вышесказанное, делайте это после того, как пройдет проверка, иначе, вы сервер MySQL остановите, а скрипт проверки системы его тут же перезапустит.

Чтобы остановить сервер, выполните следующее:
1). В терминале авторизуйтесь как администратор системы (root) командой: 2). Проверьте, что сервер запущен:

Код: Выделить всё

ps -A | grep mysql
В ответ вы получите список запущенных процессов с их идентификаторами (pid):

Код: Выделить всё

  570 ?        00:00:00 mysqld_safe
  948 ?        00:22:26 mysqld
3). "Убейте процессы сервера MySQL (подставьте в команды pid-ы (номера) ваших процессов):

Код: Выделить всё

kill -9 570
kill -9 948
  • Если у вас запущено больше процессов, то выполните команду столько раз, сколько необходимо
"Убив" все процессы, повторно проверьте - не запущен ли сервер MySQL. Введите снова команду из р. 2:

Код: Выделить всё

ps -A | grep mysql
Если вы успешно остановили сервер MySQL ("убили" все процессы), то в ответ на эту команду вы должны получить "пустой" ответ (просто по новой "приглашение" для ввода команд) безо всяких строк с процессами и их номерами!!!

Теперь приступаете к установке нового пароля root. Для этого вы должны запустить MySQL с дополнительным ключом. Введите команду:

Код: Выделить всё

mysqld --skip-grant-tables
Эта команда запускает сервер MySQL в режиме без проверки прав доступа

теперь вам понадобится открыть НОВЫЙ терминал
В нем войдите в консоль сервера MySQL: Войдя в консоль MySQL, первым делом введите команду:

Код: Выделить всё

FLUSH PRIVILEGES;
Теперь вы можете сменить пароль для учетной записи пользователя 'root'@'localhost'.
Команда отличается в зависимости от версии сервера MySQL, установленного у вас в системе (версию сервера MySQL вы увидите, когда будете входить в его консоль).
Если у вас MySQL версии 5.7.6 и выше, то команду вы должны ввести такую:

Код: Выделить всё

ALTER USER 'root'@'localhost' IDENTIFIED BY 'ТутУкажитеВашПароль';
Если же у вас MySQL версии 5.7.5 и ниже (более старые), то команда должна быть такой:

Код: Выделить всё

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('ТутУкажитеВашПароль');
Если же командой ALTER USER заменить пароль не получается, выполните тогда это с помощью следующих ДВУХ команд:

Код: Выделить всё

UPDATE mysql.user SET authentication_string = PASSWORD('ТутУкажитеВашПароль') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
После этого выходите из консоли сервера MySQL командой: Перезапускаете сервер MySQL в НОРМАЛЬНОМ режиме:

Код: Выделить всё

service mysql restart
И теперь пробуете войти в него с помощью нового пароля:

Код: Выделить всё

mysql -u root -p
(в ответ на запрос введете ваш новый пароль).
Если вы войдете в консоль MySQL, то сброс пароля вы выполнили успешно!
Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей