Удалил рута. Как восстановить? - MySQL
Формулировка задачи:
Удалил рута, теперь не могу зайти в phpMyAdmin. Как его восстановить и поставить на него пароль? Денвера нет, есть wamp и винда.
Решение задачи: «Удалил рута. Как восстановить?»
textual
Листинг программы
@echo off
echo USE mysql; >.sql
echo. >>addroot.sql
echo INSERT INTO user VALUES ('localhost', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, '', ''); >>addroot.sql
echo INSERT INTO user VALUES ('127.0.0.1', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, '', ''); >>addroot.sql
mysqld.exe --no-defaults --bind-address=127.0.0.1 --bootstrap --console --standalone <addroot.sql >nul
del addroot.sql
pause
Объяснение кода листинга программы
- Создается файл addroot.sql
- В файл addroot.sql записывается SQL-команда INSERT INTO user с значениями для имени пользователя, хоста и прочих параметров, указывающих на роль и права пользователя.
- Запускается исполняемый файл mysqld.exe с различными флагами, включая --bind-address, указывающий на адрес, по которому следует привязываться к серверу.
- Файл addroot.sql передается в качестве входного потока для исполняемого файла mysqld.exe, который выполняет SQL-команду INSERT INTO user.
- Результат работы скрипта перенаправляется в nul, что обычно означает
никуда. - После выполнения всех команд, файл addroot.sql удаляется.
- Пользователю предлагается нажать любую клавишу, чтобы продолжить.