I have a client with a relatively large (or at least not tiny) dataset. Around ~2Gb on disk.
When running a reporting function of the CRM application running with this DB, we are hit with
Database Error Code: The table 'tablexyz' is full, Error 1114
This is puzzling for a few reasons.. The first is that it manages to decide that within around 3 seconds of the page attempting to load the report. The others are that:
A) It's an InnoDB table, so there are no explicit row limits as such (or am I wrong?)..
B) It's an x64 system, with x64 MySQL installed so the effective size limit of an InnoDB table is the filesystem's single filesize limite of 4Tb..
C) The disk is not full, it has around 700Gb available. The ibdata1 file on disk is 1.89Gb, the ib log files are 5Mb each.
MySQL was custom compiled from source by myself, as the client requested a custom MAX_INDEXES value of 250. As far as I am aware, this would have no effect on this scenario.
To compound the issue, the table doesn't even exist normally... It appears it is a temporary table created on the fly during this report run. Or at least I think it does.. At no point throughout the page loading in the CRM Application, can I find that table within MySQL. I'm not sure if there is a deeper issue that I'm not seeing, and its a red herring that its telling me it's full? Ideas welcome.