В Unix-окружении, процедура сбрасывания пароля суперпользователя следующая:
1. Авторизуйтесь в вашей системе под учетной записью суперпользователя или как пользователь, под которым запущен сервер MySQL.
2. Найдите .pid-файл, который содержит идентификатор процесса сервиса. Расположение и название этого файла зависит от вашего дистрибутива, имени хоста и конфигурации. В основном, он может быть расположен где-нибудь в районе /var/lib/mysql/, /var/run/mysqld/, или /usr/local/mysql/data/. Обычно, файл имеет расширение .pid и имя или mysqld, или хост вашей системы.
Вы можете остановить сервер MySQL путем отправки команды kill (НЕ kill -9) на процесс mysqld, используя путь до файла .pid в следующей команде:
kill `cat /mysql-data-directory/host_name.pid`
Заметьте, что закрывающая кавычка точно такая же, как и открывающая; команда kill использует вывод команды cat.
3. Создайте текстовый файл и поместите в него следующую команду в одну строку:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('НовыйПароль');
Сохраните файл под любым именем. К примеру, файл будет следующим ~/mysql-init.
4. Перезапустите сервер MySQL с параметром –init-file=~/mysql-init.
mysqld_safe --init-file=~/mysql-init &;
Содержимое файла выполнится при загрузке сервера и изменит пароль. После того, как сервер MySQL загрузится, вам следует удалить файл ~/mysql-init.
5. Теперь вы можете подключиться, используя новый пароль.
В качестве альтернативы, на других платформах, вы можете установить новый пароль, используя mysql-клиент (но это уменьшает безопасность действий):
1. Остановите mysqld и запустите с параметрами –skip-grant-tables –user=root (Пользователям Windows параметр -user=root можно опустить).
2. Подсоединитесь к серверу MySQL командой:
mysql -u root
3. Выполните следующие действия в mysql-клиенте:
UPDATE mysql.user SET Password=PASSWORD('НовыйПароль') WHERE User='root'; FLUSH PRIVILEGES;
4. Теперь вы можете подключиться, используя новый пароль.