Si tienes un servidor u hospedaje web con acceso remoto - conexión segura del tipo SSH, la manera más fácil de reparar y optimizar todas las tablas de las bases de datos mysql, es mediante los siguientes comandos:
mysqlcheck -r -uUSUARIO -pPASSWORD -A
mysqlcheck -o -uUSUARIO -pPASSWORD -A
Dónde -r significa reparar y dónde -o significa optimizar y -A significa en ingles All (Todas las bases de datos)
Deberás remplazar
USUARIO por el nombre de usuario de la base de datos y PASSWORD con la contraseña de ese usuario
Pero para evitar crear estos 2 comandos, para cada usuario, se utiliza el usuario raiz (root), llamado admin, con su contraseña correspondiente, y asi, solo deberemos usar estos 2 comandos una sola vez:
mysqlcheck -r -uadmin -pPASSWORD -A
mysqlcheck -o -uadmin -pPASSWORD -A
Asi, si por ejemplo, nuestro password es HoLaTu, quedaria algo como:
mysqlcheck -r -uadmin -pHoLaTu -A
mysqlcheck -o -uadmin -pHoLaTu -A
Esto lo podemos programar, con un comando CRON, para que se ejecute cada cierto tiempo, o cada ciertos días, y así, nuestras páginas web esten siempre optimizadas y cargen más rápido.
FIX PARA PLESK 11 (How to repair and optimise all mysql databases without using root password)
Por alguna razón desconocida, este mismo comando dejo de funcionar en un servidor con linux, que tenia el panel de control Plesk 10, y se actualizó a Plesk 11, que al ejecutar los comandos anteriores, mostraba el siguiente mensaje de error:
mysqlcheck: Got error: 1045: Access denied for user 'admin'@'localhost' (using password: YES) when trying to connect
Por lo que la solución fue ejecutar otro comando, para que en vez de usar el password, localice el que esta guardado en nuestro servidor, y los comandos pueden quedar entonces de la siguiente manera:
mysqlcheck -r -uadmin -p`cat /etc/psa/.psa.shadow` -A
mysqlcheck -o -uadmin -p`cat /etc/psa/.psa.shadow` -A
En este ejemplo, no debemos de cambiar ya nada, ya que el password lo tomará directamente de donde esta guardado en nuestro servidor