Repairing tables with mysqlcheck or another variant to learn helpful topics about mysql databases
https://social.msdn.microsoft.com/Forums/en-US/fb94219c-fbf8-455d-b912-5544be11f186/how-to-fix-my-sql-database?forum=sqldataaccess
http://www.sqlservercentral.com/Forums/Topic1618894-2893-1.aspx
But in case your corruption can't be overcome, then I would suggest you more powerful instrument for such cases https://mysql.recoverytoolbox.com/Recovery Toolbox for MySQL
If you, by any chance, forgot to create backup, you should do more work as the following:
Edit my.cnf (usually located in /etc/my.cnf) and add this line into [mysqld] section innodb_force_recovery=4
Restart mysql (e.g: /etc/init.d/mysqld restart)
Your MySQL log should tell you which table is corrupt. You can dump the table using “SELECT … INTO OUTFILE …” from mysql console or using tool like mysqldump
Example using MySQL query (you also need to dump the schema later)
mysql> SELECT * FROM corrupted_table INTO OUTFILE ‘/path/to/file’
Example using mysqldump root# mysqldump –opt -u uname -p dbname corrupted_tablename > /path/to/out.sql
Go back to my.cnf and comment the line you wrote from step #1
Go intoMySQL console and drop the corrupted table
mysql> DROP TABLE corrupted_tablename;
Import data dump, for sql dump you can use: root# mysql -u uname -p < /path/to/out.sql
Go back into mysql console, check and optimize all tables
Done