XAMPP/MySQL: не удалось открыть файл таблицы таблиц с одной таблицей. \Mysql\innodb_index_stats.ibd после перезагрузки MySQL

Я установил Drupal на свой локальный сервер XAMPP. Он работал отлично, никаких проблем с включением и работой с базой данных/сайтом до тех пор, пока я не перезапустил XAMPP. С тех пор я получаю следующее в моем файле журнала:

2013-09-02 16:18:46 2544 [Примечание] Плагин 'FEDERATED' отключен.

2013-09-02 16:18:46 3e8 InnoDB: Предупреждение: использование innodb_additional_mem_pool_size DEPRECATED. Этот вариант может быть удален в будущих выпусках вместе с опцией innodb_use_sys_malloc и с внутренним распределителем памяти InnoDB.

2013-09-02 16:18:46 2544 [Note] InnoDB: куча памяти InnoDB отключена

2013-09-02 16:18:46 2544 [Примечание] InnoDB: Мьютексы и rw_locks используют функции блокировки Windows

2013-09-02 16:18:46 2544 [Примечание] InnoDB: сжатые таблицы используют zlib 1.2.3

2013-09-02 16:18:46 2544 [Note] InnoDB: Не использовать инструкции CPU crc32

2013-09-02 16:18:46 2544 [Примечание] InnoDB: инициализация пула буферов, размер = 16.0M

2013-09-02 16:18:46 2544 [Примечание] InnoDB: завершена инициализация пула буферов

2013-09-02 16:18:46 2544 [Примечание] InnoDB: Максимально поддерживаемый формат файла - Barracuda. ​​

2013-09-02 16:18:47 2544 [Note] InnoDB: порядковые номера журнала 1600614 и 1600614 в файлах ibdata не соответствуют порядковому номеру журнала 1600644 в ib_logfiles!

2013-09-02 16:18:47 2544 [Note] InnoDB: база данных не была отключена нормально!

2013-09-02 16:18:47 2544 [Примечание] InnoDB: запуск восстановления после сбоя.

2013-09-02 16:18:47 2544 [Примечание] InnoDB: чтение информации табличного пространства из файлов .ibd...

2013-09-02 16:18:47 2544 [ERROR] InnoDB: Попытка открыть ранее открытое табличное пространство. Предыдущее табличное пространство drupal/variable использует пробел ID: 2 в пути к файлу:.\Drupal\variable.ibd. Не удается открыть табличное пространство mysql/innodb_index_stats, которое использует пробел ID: 2 в пути к файлу:.\Mysql\innodb_index_stats.ibd

InnoDB: Ошибка: не удалось открыть файл табличного пространства в одной таблице. \mysql\innodb_index_stats.ibd

InnoDB: мы не продолжаем восстановление после сбоя, потому что таблица может стать

InnoDB: поврежден, если мы не можем применить записи журнала в журнале InnoDB к нему.

InnoDB: Чтобы устранить проблему и запустить mysqld:

InnoDB: 1) Если в файле есть проблема с разрешением, а mysqld не может

InnoDB: откройте файл, вы должны изменить разрешения.

InnoDB: 2) Если таблица не нужна или вы можете восстановить ее из резервной копии,

InnoDB: тогда вы можете удалить .ibd файл, а InnoDB будет делать обычный

InnoDB: восстановление после сбоя и игнорирование этой таблицы.

InnoDB: 3) Если файловая система или диск повреждены, и вы не можете удалить

InnoDB:.ibd файл, вы можете установить innodb_force_recovery > 0 в my.cnf

InnoDB: и заставить InnoDB продолжить восстановление после аварии.

Я искал решение через google, но, похоже, это проблема только с базой данных drupal, потому что он может подключаться к MySQL, если я удалю базу данных.

Я надеюсь, что кто-то может мне помочь: (.

Ответы

Ответ 1

dev_khan, попробуйте перезапустить MySQL в режиме только для чтения с включенной опцией innodb_force_recovery:

  • Изменить my.cnf - найти строку: # innodb_force_recovery = 2
  • Прокомментируйте строку в (удалите #)
  • Перезагрузите MySQL, чтобы он мог сам ремонтировать MySQL.
  • Еще раз прокомментируйте строку innodb_force_recovery (добавьте #)
  • Перезапустите MySQL снова, и у вас есть полный доступ снова без ограничения только для чтения.

Приветствия из Германии

Ответ 2

Переместите (НЕ УДАЛИТЬ) эти файлы в другую папку:

innodb_index_stats.frm
innodb_table_stats.frm
slave_master_info.frm
slave_relay_log_info.frm
slave_worker_info.frm

и .ibd с тем же именем:

innodb_index_stats.ibd
innodb_table_stats.ibd
slave_master_info.ibd
slave_relay_log_info.ibd
slave_worker_info.ibd

Попробуйте запустить MySQL.

Ответ 3

Вы можете решить эту проблему, добавив строку в ваш конфигурационный файл mysql: my.cnf или my.ini(зависит от вашего дистрибутива)

только под [mysqld] добавьте эту строку: innodb_force_recovery = 1

..
[mysqld]
innodb_force_recovery = 1 
..

Затем перезапустите сервер MySql. Вы могли потерять некоторые данные, но вы снова получите сервер с вашими данными.

Привет,

Ответ 4

Это происходит и с Wordpress. Похоже, что это происходит с последней версией, поскольку я вернулся к предыдущим версиям AMPPS, и он отлично работает, не поднимая эту проблему с innodb.