MySQL Crashed, innodb пытается получить доступ к номеру страницы, который находится за пределами табличного пространства - PullRequest
0 голосов
/ 16 января 2019

Я использую MySQL (5.7) на сервере Windows 2012. Одна из таблиц (> 1 миллиона записей) повреждена. Журнал ошибок mysql показывает

2019-01-16T09:41:09.256990Z 0 [Note] InnoDB: Buffer pool(s) load completed at 190116 14:41:09
2019-01-16T09:41:25.153201Z 2 [Warning] IP address 'ip' could not be resolved: No such host is known. 
2019-01-16T09:41:25.620502Z 3 [ERROR] InnoDB: Trying to access page number 3 in space 470, space name shop/products, which is outside the tablespace bounds. Byte offset 0, len 16384, i/o type read. If you get this error at mysqld startup, please check that your my.cnf matches the ibdata files that you have in the MySQL server.
2019-01-16T09:41:25.623268Z 3 [ERROR] InnoDB: Server exits.

Эта проблема возникла, когда я вставлял записи в эту таблицу. В этой таблице 22 проиндексированных столбца, и один из них - FULLTEXT.

Я также пробовал innodb_force_recovery = [1 - 6], но не могу вывести таблицу продуктов. Всякий раз, когда я пытался получить доступ к этой таблице, происходит сбой сервера БД.

есть ли способ получить дамп или восстановить эту таблицу. У меня старая резервная копия с датой, поэтому я не могу ее использовать. Спасибо:)

Сведения о сервере MYSQL:

  • Версия 5.7 (32 бита)

  • Windows Server 2012

  • СУБД: InnoDB

Обновлено

Я столкнулся со странной проблемой. Когда я выполняю команду статуса таблицы, она показывает, что количество строк равно нулю,

, но размер файла products.ibd в папке данных mysql составляет 4 ГБ.

SHOW TABLE STATUS FROM shop LIKE 'products';

enter image description here

Размер файла по ОС

enter image description here

...