MySQL and ERROR 1114 (HY000): The table TABLE is full

Recently I did some site maintenance and had to dump MySQL database and upload it again. I was surprised when during loading data back to database process have stopped with error:

ERROR 1114 (HY000) at line 1052: The table 'searches' is full

It was MySQL 5.0, without cluster configuration. Google lead me to answers related to cluster setup, so I got quickly frustrated. It would be good for MySQL to provide some database of most common reasons for errors reported by MySQL.

This time reason was quite trivial – there was not enough space on file system to upload database. Why? I was changing MySQL setup to innodb_file_per_table. Since when doing such change You won’t get back space allocated to old database in file ibdata1 in mysql directory. Since database was not so small there was not enough space to create new database.

Test benchmark – useful gem for Rails tests

Doing TDD You need to know which tests are making whole suite slower. If time used by rake test becomes too long, You may be tempted to skip running tests… Waiting for them to complete becomes suddenly burden on Your way to next task.

Waiting... Waiting...

Waiting... Waiting... (c) Tony the Misfit

So, when You need to optimize Your test suite, test_benchmark is a way to go. Just install Rails plugin and after rake test You will get 10 slowest tests and timing of all test in test.log. Now You know where to look for a good place to start and not to wait too long…