mrneo
mrneo

Reputation: 13

MySQL innodb “The Table is Full” error

i will really appreciate if someone help me with this. I have spend like 8hours googling around and found no solution to problem.

I have MySQL server version 5.7.7 on Windows server 2008 R2

Table engine is innodb

innodb_file_per_table = 1

I get error "Table is full" when table reaches 4Gb. MySQL documentation sais that there is actualy only one limit on table size, filesystem. (http://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html)

HDD where are data stored uses NTFS, just to be sure i created 5Gb file without problems. And sure there is more than 10Gb of free space.

I understand setting "innodb_data_file_path" is irrelevant if "innodb_file_per_table" is enabled, but i tried to set it. No differences. I have tried to do clean install of mysql. Same result.

EDIT

Guy that installed MySQL server before me accidentally installed 32bit version. Migration to 64bit mysql solved that problem

Upvotes: 1

Views: 12143

Answers (3)

Rick James
Rick James

Reputation: 142258

About the only way for 4GB to be a file limit is if you have a 32-bit version of MySQL. Also check for 32-bit Operating system. (Moved from comment, where it was verified.)

Upvotes: 6

mrneo
mrneo

Reputation: 13

I didnt find solution to this, i have no idea why mysql is unable to create more than 4Gb table.

As a workaround i moved only this table back to ibdata by setting "innodb_file_per_table" back to 0 and recreated that table. Interesting is that even ibdata1 reported table is full when it reached 4Gb, even without setting max and enabled autoexpand.

So i created ibdata2 and let it autoexpand, now i am able to write new data to that table.

Upvotes: 0

kiran gadhvi
kiran gadhvi

Reputation: 228

i am also not sure but read this it may help you. http://jeremy.zawodny.com/blog/archives/000796.html

one more thing one guy had same problem.he had made changes to 
NNODB settings for the innodb_log_file_size and innodb_log_buffer_size!changes were :

1) shutdown mysql
2) cd /var/lib/mysql 
3) mkdir oldIblog
4) mv ib_logfile* oldIblog
5) edit /etc/my.cnf find the line innodb_log_file_size= and increase it to an appropriate value (he went to 1000MB as he was dealing with a very large dataset... 250million rows in one table). If you are not sure I suggest doubling the number every time you get a table is full error. he set innodb_log_buffer_size to 1/4 of the size of his log file and the problems went away.

Upvotes: 1

Related Questions