У меня есть приложение C#, выполняющее некоторые операции с базами данных на сервере MySQL 5.7. После того, как система полностью оправилась, и мне пришлось ее сбрасывать. Когда дело доходит до конкретной операции чтения/записи таблицы, сервер базы данных выходит из строя. Окна журнала показываетОшибка сервера MySQL, InnoDB за пределами границ табличного пространства
InnoDB: Trying to access page number 286720 in space 29,
space name myInstance/myTable, which is outside the tablespace bounds.
Byte offset 0, len 16384, i/o type read.
Я пытался использовать mysqlcheck --repair
, но терпит неудачу, потому note : The storage engine for the table doesn't support repair
.
Я прочитал несколько советов, которые говорят, я должен начать MySQL в режиме восстановления, так что я добавил
[mysqld]
innodb_force_recovery=4
в файл конфигурации my.ini
, после чего я должен быть в состоянии использовать mysqldump
экспортировать пораженный таблицу базы данных , Но, к сожалению, нет.
mysqldump: Error 2013: Lost connection to MySQL server
during query when dumping table `myTable` at row: 1246
Edit:
Я снова проверил журнал ошибок и нашел много записей говоря
[ERROR] C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe:
The table 'myTable' is full
Я бегу сервер на 32-битной ОС Windows с NTFS отформатированный раздел. Размер файла myTable.ibd
составляет около 4,5 ГБ, при проверке C.10.3 Limits on Table Size указано ограничение размера файла «2 ТБ (возможно, больше)» для Win32 w/NTFS. При проверке причин моей ошибки единственной возможной причиной, которую я обнаружил, было полное табличное пространство InnoDB. Решением может быть «Изменение количества или размера файлов журнала повторного использования InnoDB», хотя согласованность немного расплывчата для меня. Тем не менее я увеличил размер файлов журнала повтора с 48M до 100M. Но ничего не изменилось.
Если я выполняю SQL select * from myTable order by Id desc
, сервер аварийно завершает работу. Запись журнала ошибок точно такая же, как и выше.
Я также проверил главу 15.7.1 Resizing the InnoDB System Tablespace и выяснил, что innodb_data_file_path
не указано явно.
Любые идеи, что я могу сделать сейчас? Большое спасибо!
Сэр, у меня такая же проблема. Можете ли вы рассказать мне, как вы решили проблему, если сможете? Сначала я получил ошибку «table is full», а затем сбой сервера в каждом событии mysqldump. Я пробовал все варианты recorvery от 1 до 6. –
Опубликовать отчет об ошибке по адресу http: //bugs/mysql.com –
решил проблему, переключив всю СУБД. Извините за плохие новости. – marrrschine