2

При попытке перезапустить мой пароль MySQL я получаю следующий вывод в консоли (это также ввод, который вызвал вывод):

C:> "C:\MySQL\bin\mysqld" --console --init-file = C:\mysql - init.txt

111008 23:42:48 [Note] Plugin 'FEDERATED' is disabled.
111008 23:42:48 InnoDB: The InnoDB memory heap is disabled
111008 23:42:48 InnoDB: Mutexes and rw_locks use Windows interlocked functions
111008 23:42:48 InnoDB: Compressed tables use zlib 1.2.3
111008 23:42:48 InnoDB: Initializing buffer pool, size = 45.0M
111008 23:42:48 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file .\ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 24117248 bytes!
111008 23:42:48 [ERROR] Plugin 'InnoDB' init function returned error.
111008 23:42:48 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

111008 23:42:48 [ERROR] Unknown/unsupported storage engine: INNODB 
111008 23:42:48 [ERROR] Aborting

111008 23:42:48 [Note] C:\MySQL\bin\mysqld: Shutdown complete

4 ответа4

2

Если вы выполнили шаг в руководстве, вам просто нужно выполнить команду:

C:\> C:\mysql\bin\mysqld --init-file=C:\\mysql-init.txt

Который автоматически сбросит пароль (потому что вы написали файл с командой, чтобы сделать это (шаг 3)).

Если эта команда не работает, просто выполните другую команду:

C:\> "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld.exe"
        --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.ini"
        --init-file=C:\\mysql-init.txt
1

Я ответил на вопрос, подобный этому, в DBA StackExchange еще 26 сентября 2011 года.

Этот человек принял мой ответ.

Это как взломать my.ini, и это должно работать для вас.

ОБНОВЛЕНИЕ 2011-10-19 07:12 ПО ВОСТОЧНОМУ ВРЕМЕНИ

Все, что вам нужно сделать, это удалить ib_logfile0 и ib_logifle1, и mysqld заставит InnoDB сгенерировать два файла журнала innodb.

Я хотел бы видеть журнал ошибок ранее. Все это время я продолжаю помогать тебе решать проблемы с грантами.

1

Руководство говорит:

C.5.4.1.1. Сброс пароля root: системы Windows В Windows используйте следующую процедуру для сброса пароля для всех корневых учетных записей MySQL:

  1. Войдите в систему как администратор.
  2. Остановите сервер MySQL, если он работает. Для сервера, работающего в качестве службы Windows, перейдите в диспетчер служб. В меню «Пуск» выберите «Панель управления», затем «Администрирование», затем «Службы». Найдите сервис MySQL в списке и остановите его. Если ваш сервер не работает как служба, вам может потребоваться использовать диспетчер задач, чтобы принудительно остановить его.
  3. Создайте текстовый файл, содержащий следующие операторы. Замените пароль на пароль, который вы хотите использовать.

    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
    

    Запишите операторы UPDATE и FLUSH в каждой строке. Оператор UPDATE сбрасывает пароль для всех корневых учетных записей, а оператор FLUSH сообщает серверу перезагрузить таблицы предоставления в память, чтобы он заметил изменение пароля.

  4. Сохраните файл. В этом примере файл будет называться C:\mysql-init.txt .
  5. Откройте окно консоли, чтобы перейти к командной строке. В меню «Пуск» выберите «Выполнить», а затем введите cmd в качестве команды для запуска.
  6. Запустите сервер MySQL с помощью специальной --init-file (обратите внимание, что обратный слеш в значении опции удваивается):

    C:\> C:\mysql\bin\mysqld-nt --init-file=C:\\mysql-init.txt 
    

    Если вы установили MySQL в папку, отличную от C:\mysql , измените команду соответствующим образом. Сервер выполняет содержимое файла, названного параметром --init-file при запуске, изменяя пароль каждой учетной записи root. Вы также можете добавить в команду параметр --console если хотите, чтобы выходные данные сервера отображались в окне консоли, а не в файле журнала. Если вы установили MySQL с помощью мастера установки MySQL, вам может потребоваться указать параметр --defaults-file :

    C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.0\\my.ini" --init-file=C:\\mysql-init.txt 
    

Соответствующий параметр --defaults-file можно найти с помощью диспетчера служб. В меню «Пуск» выберите «Панель управления», затем «Администрирование», затем «Службы». Найдите сервис MySQL в списке, щелкните его правой кнопкой мыши и выберите «Свойства». Поле «Путь к исполняемому файлу» содержит параметр --defaults-file . 7. После успешного запуска сервера удалите C:\mysql-init.txt .

Поэтому сначала вы должны создать файл, как указано в пункте 3, а затем, используя командную строку (Start-> Run-> CMD (ENTER)), запустить mysqld-nt.exe с параметром --init-file указывающим на этот файл. Не забудьте использовать полный путь как для mysqld-nt.exe, так и для созданного вами файла.

1

В вашем случае, прежде чем вы сможете сбросить пароль, вам нужно решить проблему с запуском.

Обратите внимание на первую ошибку, указанную в журнале ошибок MySQL:

InnoDB: Error: log file .\ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 24117248 bytes!

Это означает, что вы, возможно, скопировали файлы базы данных из другого места или отредактировали настройки my.cnf, и они больше не соответствуют реальному размеру файла ib_logfile0. Сосредоточьтесь на этом вопросе в первую очередь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .