Login to your server as root.
Firstly check the status of MySQL on your dedicated server. Normally, it should be ok – as you’re getting this error.
The database table can be repaired only if the Mysql server is in running status. You can check the status by the command.
root# /etc/init.d/mysql status
Now, login to the MySQL database for a required user.
mysql> mysql –u databaseusername –p databasename
You need to select that particular database having problem.
mysql> use databasename;
Now, you will have to check whether the table is corrupted. On giving the below command you will get a NULL value as your output if it is corrupted otherwise it’s alright.
mysql> check table tablename;
If the table is corrupted for that particular database, then you need
to repair the table by giving the following command.
mysql> repair table tablename;
This will repair the table for you.
Under some situations however, no matter how many times you run a REPAIR on the table, the table still returns IN USE and what’s worse is that the system says the table is “already up to date”.
If you have shell access, here’s what to do;
cd /var/lib/mysql/DATABASE (where DATABASE is the one you’re trying to fix)
myisamchk –safe-recover –force TABLE (where TABLE is the table you are tring to fix)
This will will repair the table in safemode, and SHOULD result in success.
more options
http://www3.wiredgorilla.com/content/view/347/58/