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.