Unofficial, No mess, No thrills, No fluff, No Explanation, Absolutely No Guarantee, Ruff and Gruff howto fix MySQL Databases
- Make a temp directory to work in
cd /root
mkdir mysql_tmp
cd mysql_tmp
- Locate the database, ussualy a directory in /var/mysql or /var/lib/mysql
ls -la /var/mysql/_database_name_
- Stop the mysql service, might be called mysql, might be called mysqld
service mysql stop
- Create backup
mkdir _database_name_.backup
cp -a /var/mysql/_database_name_/* /root/mysql_tmp/_database_name_.backup
- Restart MySQL
service mysql start
- Make a backup of the backup to work with so you can try different fixes
mkdir _database_name_.work
cp -a /root/mysql_tmp/_database_name_.backup/* /root/mysql_tmp/_database_name_.work
- Try to repair database, see detailed instructions at http://dev.mysql.com/doc/refman/5.0/en/myisamchk.html for advanced options
cd /root/mysql_tmp/_database_name_.work
myisamchk --recover *.MYI
- Test current fix
service mysql stop
cp -a /root/mysql_tmp/_database_name_.work/* /var/mysql/_database_name_/
service mysql start
- If fail go back to the first backup, sent to the second backup and try again woth more advanced options. If all else fails, restore from the last known good backup. Any suggestions welcome!