MySQL is far from a perfect bit of software, but it does certain jobs quite adequately. I found out today how little I can trust myisamchk to tell me about data corruption though. A few days ago, I had an issue with lack of free blocks, and MySQL stopped processing data. This is good. I expect this (arguably, I should have known the disk was low, but I had been away and the disk usage rate shot up while I was away). One of the jobs that relies on a certain table wasn’t completing properly, and was throwing ’severe’ errors in the web interface that talks to it.
A quick check with myisamchk -dv said ’status: changed’. Not ’status: crashed’. A myisamchk -r, however, said ‘oops, something is wrong here!’
I realise that myisamchk is meant to deal with index data, and not table data, but you’d have thought it could tell you that the data file was out of whack too!
