Сменить и сбросить пароль root в MySQL можно следующим образом:
1. Зайдите как root в Windows или Unix-like (Unix, Linux or BSD) машину с MySQL сервером.
2. Остановите MySQL сервер:
В Linux: /etc/rc.d/init.d/mysql stop
В FreeBSD: /usr/local/etc/rc.d/mysql-server.sh stop
3. Откройте скрипт запуска MySQL сервера (например, mysql-server.sh - запускной файл стартующий или останавливающий MySQL сервер.
4. Добавьте –skip-grant-tables в конец строки которая содержит mysqld_safe команду как ее параметр.
5. Запустите MySQL сервер командой:
В Linux: /etc/rc.d/init.d/mysql start
М FreeBSD: /usr/local/etc/rc.d/mysql-server.sh start
6. Также можно запустить MySQL сервер напрямую не редактируя файл, командой:
mysqld_safe –skip-grant-tables &
В зависимости от ваших настроек переменных сред, вам может потребоваться указать полный путь до директории где находится mysqld_safe.
7. Выполните следующую команду для подключения к базе и доступа к таблице с пользователями MySQL:
# mysql -u root mysql
8. Выполните запросы обновления для смены пароля MySQL:
mysql> UPDATE user SET Password=PASSWORD(’newrootpassword’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
Замечание: в данном примере новый пароль root будет newrootpassword. Команда FLUSH PRIVILEGES необходима для того, чтобы изменения вступили в действие.
9. Закройте MySQL базу набрав exit.
10. Остановите MySQL сервер также, как в пункте 2.
11. Откройте скрипт запуска MySQL сервера и удалите –skip-grant-tables параметр который был добавлен в пункте 3.
12. Запустите MySQL сервер также, как в пункте 5 или 6.
Пользователям Redhat Linux необходимо использовать следующие инструкции войдя под root пользователем Redhat Linux:
1. Остановите MySQL процесс используя команду:
# killall mysqld
2. Запустите MySQL сервер со следующими опциями:
# /usr/libexec/mysqld -Sg –user=root &
3. Запустите MySQL клиент:
# mysql
Вы должны увидеть следующее сообщение:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 3.xx.xx
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.
mysql>
4. Используйте MySQL базу:
mysql> USE mysql
Вы должны увидеть следующее сообщение:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
5. Теперь измените пароль root пользователя следующей командой:
UPDATE user SET password=password(”newpassword”) WHERE user=”root”;
Замените newpassword на пароль который вы хотите установить. Вы должны увидеть следующее сообщение:
Query OK, 2 rows affected (0.03 sec)
Rows matched: 2 Changed: 2 Warnings: 0
Rows affected may be different, but the Query OK should be there.
6. Выполните команду для того чтобы изменения вступили в действие:
mysql> flush privileges;
Вы должны получить следующий результат:
Query OK, 0 rows affected (0.02 sec)
7. Выйдите из MySQL клиента выполнив команду exit.
8. Остановите MySQL сервер выполнив команду killall mysqld.
9. Запустите MySQL снова:
/etc/init.d/mysqld start