[CentOS] MySQL error 28, can't write temp files - how to debug? [SOLVED]

Thu Nov 5 22:48:51 UTC 2009
Rudi Ahlers <rudiahlers at gmail.com>

On Fri, Nov 6, 2009 at 12:44 AM, Les Mikesell <lesmikesell at gmail.com> wrote:
> Rudi Ahlers wrote:
>> On Thu, Nov 5, 2009 at 11:47 PM, Alan Hodgson <ahodgson at simkin.ca> wrote:
>>> On Thursday 05 November 2009, Rudi Ahlers <Rudi at softdux.com> wrote:
>>>> According to google search, errorcode 28 means the HDD is full. But it
>>>> isn't:
>>>>
>>>>
>>>> root at vps:[~]$ df -h
>>>> Filesystem            Size  Used Avail Use% Mounted on
>>>> /dev/sda1              84G   18G   62G  23% /
>>>> none                  640M     0  640M   0% /dev/shm
>>>> /usr/tmpDSK           485M   11M  449M   3% /tmp
>>>>
>>>>
>>>> What else could cause this kind of problem?
>>> You only have 449MB free on /tmp. It could easily fill that up during the
>>> query, and then delete the file before you run df again. Run it while the
>>> query is executing, I bet you see /tmp filling up.
>>>
>
>> Thanx, that seems to have solved the problem. I didn't think of
>> checking to see if the tmp folder got full during the SQL statement
>> execution. So, by increasing it to 1GB, the problem is solved
>
> I've seen mysql do dumb stuff like building a huge temp table in a 3-way
> join before evaluating any of the WHEN clause that would eliminate most
> of it, but does it really have to make a copy of a single table to pick
> a random chunk?
>
> --
>   Les Mikesell
>    lesmikesell at gmail.com
>
> _______________________________________________


This could very well be the case. The website in question is written
in PERL (yea, I know.....) and the client doesn't really pay much for
us to look into the code to see if it can be optimized either. So I
just have to make sure the VPS copes with it. But for now it's working
fine :)



-- 
Kind Regards
Rudi Ahlers
CEO, SoftDux Hosting
Web: http://www.SoftDux.com
Office: 087 805 9573
Cell: 082 554 7532