В эти выходные я обновил рабочую станцию с Windows 8 до Windows 8.1. Это была рабочая станция для разработчиков, на которой был размещен локальный экземпляр MySQL 5.6, используемый для веб-разработки.
После завершения обновления я обнаружил, что служба MySQL не была запущена ... и не только это, служба полностью исчезла. Его больше не было в списке "услуг".
Все двоичные файлы все еще присутствовали там, где ожидалось, на C:\Program Files\MySQL\MySQL Server 5.6\bin
, но C:\Program Files\MySQL\MySQL Server 5.6\data
папка выглядела подозрительно маленькой ... файл ibdata1 был меньше 100 мегабайт, и на этой рабочей станции были гигабайты данных в таблицах базы данных InnoDB.
Разумеется, после того, как я вручную запустил сервер MySQL, он оказался сброшен на новую установку MySQL. Нет данных, кроме баз данных по умолчанию (т.е. mysql, information_schema, performance_schema), и единственным пользователем был «root» без пароля.
Моя первая мысль заключалась в том, чтобы вернуться к точке восстановления системы до обновления, но, к сожалению, оказалось, что восстановление системы было либо отключено, либо все точки восстановления были уничтожены обновлением 8.1.
Я не понимаю, что могло вызвать это. Это похоже на то, что обновление до Windows 8.1 "сбросило" установку MySQL. Служба установлена и снова запущена, но как насчет всех данных? Это просто ушло? Было бы неплохо получить предупреждение. Возможно, этот пост будет не чем иным, как предупреждением для других (обязательная ссылка), но я все еще надеюсь, что кто-нибудь подскажет, как восстановить мои данные ...
Я не могу объяснить, почему сервис исчез, но я выяснил, что случилось с данными.
Каким-то образом мой файл my.ini был полностью уничтожен. Как только я получил копию этого файла, я увидел, что значение datadir было установлено на C:/ProgramData/MySQL/MySQL Server 5.6/data\
Это не место по умолчанию C:\Program Files\MySQL\MySQL Server 5.6\data
. Однако это местоположение устанавливается установкой MySQL.
Таким образом, при первоначальной установке MySQL был настроен каталог данных не по умолчанию (установщиком, а не вмешательством пользователя). Затем обновление Windows 8.1 уничтожило службу и файл my.ini (который указывал на каталог данных, отличный от используемого по умолчанию), и, таким образом, при перезапуске MySQL он смотрел в каталог по умолчанию, ничего не нашел, и, таким образом, все данные появились быть пропавшим без вести.
Итак, в итоге решение было:
mysqld --install
C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
Надеюсь, это поможет кому-то еще, кто столкнется с этой же проблемой!