¿Cómo verificar, reparar u optimizar tablas o bases de datos MySQL con mysqlcheck?

0
968

El cliente mysqlcheck comprueba y repara tablas MyISAM. También puede optimizar y analizar tablas.

mysqlcheck es similar a myisamchk, pero funciona de forma distinta. La principal diferencia operacional es que mysqlcheck debe usarse cuando el servidor mysqld está en ejecución, mientras que myisamchk debe usarse cuando no lo está.

El beneficio de usar mysqlcheck es que no tiene que parar el servidor para comprobar o reparar las tablas.

mysqlcheck usa los comandos SQL CHECK TABLE, REPAIR TABLE, ANALYZE TABLE, y OPTIMIZE TABLE de forma conveniente para los usuarios. Determina los comandos a usar en función de la operación que quiera realizar, luego envía los comandos al servidor para ejecutarlos.

Hay tres modos generales de invocar mysqlcheck:

shell> mysqlcheck [opciones] nombre_de_base_de_datos [tablas]
shell> mysqlcheck [opciones] –databases DB1 [DB2 DB3…]
shell> mysqlcheck [opciones] –all-databases

Si no se nombra ninguna tabla o si no se usa las opciones –databases o –all-databases, se da por hecho que se van a comprobar todas las bases de datos.

mysqlcheck soporta las siguientes opciones:

 

–help, -?

  • Muestra el mensaje de ayuda y sale.

–all-databases, -A

  • Comprueba todas las tablas en todas las bases de datos. Esto es lo mismo que usar la opción –databases y llamar todas las bases de datos en la línea de comandos.

–all-in-1, -1

  • En lugar de realizar un comando para cada tabla, ejecuta un único comando para cada base de datos, que nombra todas las tablas de la base de datos a procesar.

–analyze, -a

  • Analiza las tablas.

–auto-repair

  • Si una tabla comprobada está corrupta, la repara automáticamente. Cualquier reparación necesaria se hace tras el chequeo de cada tabla.

–character-sets-dir=path

  • El directorio donde los conjuntos de caracteres están instalados. Consulte Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.

–check, -c

  • Comprueba las tablas en busca de errores.

–check-only-changed, -C

  • Chequea sólo tablas que han cambiado desde la última comprobación o que no se han cerrado correctamente.

–compress

  • Comprime toda la información enviada entre el cliente y el servidor si ambos soportan compresión.

–databases, -B

  • Procesa todas las tablas en la base de datos especificada. Con esta opción, todos los argumentos nombrados se tratan como nombres de bases de datos, no como nombres de tablas.

–debug[=opciones_de_depuración], -# [opciones_de_depuración]

  • Escribe un log de depuración. La cadena de caracteres opciones_de_depuración a menudo es ‘d:t:o,nombre_de_archivo’.

–default-character-set=conjunto_de_caracteres

  • Usa conjunto_de_caracteres como el conjunto de caracteres por defecto. ConsulteSección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.

–extended, -e

  • Si usa esta opción para comprobar tablas, se asegura que sean 100% consistentes pero tarda bastante.

Si usa esta opción para reparar tablas, ejecuta una reparación extendida que puede no sólo tardar bastante tiempo, sino que ¡también puede producir un montón de registros basura!

–fast, -F

  • Comprueba sólo tablas que no se han cerrado correctamente.

–force, -f

  • Continúa incluso si se produce un error SQL.

–host=nombre_de_equipo, -h nombre_de_equipo

  • Conecta con el servidor MySQL en el equipo dado.

–medium-check, -m

  • Realiza un chequeo que es más rápido que la operación –extended. Esto encuentra sólo el 99.99% de todos los errores, lo cual debería ser suficiente en la mayoría de casos.

–optimize, -o

  • Optimiza las tablas.

–password[=contraseña], -p[contraseña]

  • La contraseña a usar cuando se conecta con el servidor. Si usa la opción con su forma corta (-p), no puede haber un espacio entre la opción y la contraseña. Si omite el valor contraseña a continuación de la opción –password o -p en la línea de comandos, aparece un prompt pidiéndola.

–port=número_de_puerto, -P número_de_puerto

  • El puerto TCP/IP para usar en la conexión.

–protocol={TCP | SOCKET | PIPE | MEMORY}

  • Protocolo de conexión a usar.

–quick, -q

  • Si usa esta opción para comprobar tablas, evita que el chequeo escanee los registros para buscar enlaces incorrectos. Es el método de chequeo más rápido.

Si se utiliza esta opción para reparar tablas, el programa intenta reparar sólo el árbol del índice. Este es el método más rápido de reparación.

–repair, -r

  • Hace una reparación que puede arreglar prácticamente todo excepto claves únicas que no son únicas.

–silent, -s

  • Modo silencioso. Sólo muestra mensajes de error.

*

–socket=ruta, -S ruta

  • Archivo socket a usar en la conexión.

–tables

  • Más prioritaria que la opción –databases o -B. Todos los argumentos que vienen después de la opción se consideran nombres de tablas.

–user=nombre_de_usuario, -u nombre_de_usuario

  • El nombre de usuario MySQL a usar cuando se conecta al servidor.

–verbose, -v

  • Modo explícito. Muestra información acerca de varios estados de las operaciones del programa.

–version, -V

  • Muestra información de la versión y sale.

En lo personal uso el siguiente comando

mysqlcheck -A -o –auto-repair -u root -p y/o
mysqlcheck –all-databases -o –auto-repair -u root -p

Pero tabién existe otras formas de ejecutar el comando, inclusive usando un cron.

LEAVE A REPLY

Please enter your comment!
Please enter your name here