Я обновляю сервер MySQL 5.067 до 5.5.60 в Windows 10.
Я остановил службу, заменил bin в общий каталог и запустил службу.
Сбой службы с сообщением (в средстве просмотра событий):
Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
For more information, see Help and Support Center at http://www.mysql.com.
ОК, поэтому я открыл cmd как admin с помощью команды:
mysql_upgrade --port 64202
В результате:
Looking for 'mysql.exe' as: C:\Program Files (x86)\XXX\MySQLServer\bin\mysql.exe
Looking for 'mysqlcheck.exe' as: C:\Program Files (x86)\XXX\MySQLServer\bin\mysqlcheck.exe
Error: Failed while fetching Server version! Could be due to unauthorized access.
FATAL ERROR: Upgrade failed
Дизайн обновления MySQL подключается через TCP к MySQL для запуска обновления, но как он может работать, если служба не запущена? Это порочный круг. Для обслуживания MySQL необходимо обновить сервис MySQL, и mysql_upgrade необходимо подключиться к запущенной службе.
Что случилось?
Пропуск основных версий (5.1) не поддерживается и может работать или не работать. Соответствующее обновление является одним из следующих:
План A: обновить до 5.1, затем до 5.5. Запустите mysql_upgrade
на каждом шаге.
План B: Дамп данных из 5.0 с помощью mysqldump. (Обязательно получите подпрограммы и т.д.). Удалите (или обходите) 5.0 и установите новый 5.5. Загрузите данные обратно. В файле дампа могут быть синтаксические ошибки, при необходимости отредактируйте файл.
Поскольку вы обновляетесь с 5.0 до 5.5, существуют значения конфигурации, которые устарели, что заставляет двигатель не запускаться.
Скорее всего, виновником является skip-dbd
, как объясняется на этом сайте.
Итак: найдите свой конфигурационный файл MySQL, закомментируйте опцию skip-dbd
и перезапустите службу MySQL. Затем вы можете запустить mysql_upgrade
с соответствующими параметрами, включая проверку подлинности.