Si no se inicia tu mysql desde XAMPP y en el visor de sucesos de Windows ves el siguiente error: "mysqld: Index for table '.\mysql\db' está corrupto; try to repair it" hemos encontrado 3 maneras de repararlo.
Es muy simple.
Primera forma:
Abre la consola/shell desde el panel de control de tu XAMPP. Pega este código: mysqld –-console –-skip-grant-tables –-skip-external-locking
Abre otra shell(sin cerrar la primera) y escribe:
mysqlcheck -r --databasas mysql --use-frm
Cierra los 2 shells y ya deberías poder iniciar (sino está iniciado ya).
Segundo modo:
El mysql tiene una carpeta de backup donde guarda una copia de las tablas.
La carpeta backup la puede encontrar, si tiene la ruta por defecto en Windows, en la siguiente ruta: "c:\xampp\mysql\backup"
Haga copia de la tabla db original (en este caso la tabla db) (suelen ser 3 archivos), que está dentro de "c:\xampp\mysql\data" (o cambia- le nombre) y allí mismo copie la tabla db (los 3 archivos) que se encuentra dentro de la carpeta backup.
Haciendo esto es posible que pueda iniciar mysql
Intente iniciar el mysql para comprobarlo.
Aunque puede que le dé otros errores con otras tablas, podrá repararlas desde phpmyadmin.
Vuelva a dejar los archivos corrompidos (db.xx que ha renombrado) con el nombre original y los que hemos rescatado de la carpeta backup, los elimina. Como ya tiene el mysql iniciado, utilice, por ejemplo, el phpmyadmin para reparar la tabla db corrompida.
El resumen seria, ha utilizado la tabla db de la copia para iniciar y una vez iniciado, utiliza el phpmyadmin para reparar los archivos de la tabla DB dañada.
A nosotros nos ha funcionado