mysqlcheck es una herramienta de mantenimiento que le permite verificar, reparar, analizar y optimizar múltiples tablas desde la línea de comandos.

Es esencialmente una interfaz de línea de comandos para los comandos CHECK TABLE, REPAIR TABLE, ANALYZE TABLE y OPTIMIZE TABLE, por lo que, a diferencia de myisamchk y aria_chk, requiere que el servidor esté en ejecución.

Esta herramienta no funciona con tablas particionadas.

De MariaDB 10.4.6, mariadb-check es un enlace simbólico a mysqlcheck.

Usando mysqlcheck

./client/mysqlcheck [OPTIONS]database[tables]

O

./client/mysqlcheck [OPTIONS]--databases DB1 [DB2 DB3...]

O

./client/mysqlcheck [OPTIONS]--all-databases

mysqlcheck se puede utilizar para VERIFICAR (-c, -m, -C), REPARAR (-r), ANALIZAR (-a) u OPTIMIZAR (-o) tablas. Algunas de las opciones (como -e o -q) se pueden usar al mismo tiempo. No todas las opciones son compatibles con todos los motores de almacenamiento.

Las opciones -c, -r, -a y -o son exclusivas entre sí.

La opción --check se utilizará de forma predeterminada, si no se especificaron otras opciones. Puede cambiar el comportamiento predeterminado haciendo un enlace simbólico al binario, o copiándolo en algún lugar con otro nombre, las alternativas son:

mysqlrepair La opción predeterminada será -r (--repair)
mysqlanalyze La opción predeterminada será -a (--analyze)
mysqloptimize La opción predeterminada será -o (--optimize)

Opciones

mysqlcheck admite las siguientes opciones:

Opción Descripción
-A, --all-databases Consulta todas las bases de datos. Esto es lo mismo que --databases con todas las bases de datos seleccionadas.
-1, --all-in-1 En lugar de emitir una consulta para cada tabla, utilice una consulta por base de datos, nombrando todas las tablas de la base de datos en una lista separada por comas.
-a, --analyze Analizar tablas dadas.
--auto-repair Si una tabla marcada está dañada, corríjala automáticamente. La reparación se realizará después de que se hayan verificado todas las tablas.
--character-sets-dir=name Directorio donde se instalan los archivos de juego de caracteres.
-c, --check Consulte la tabla para ver si hay errores.
-C, --check-only-changed Verifique solo las tablas que han cambiado desde la última verificación o que no se han cerrado correctamente.
-g, --check-upgrade Consulte las tablas para ver los cambios que dependen de la versión. Puede usarse con --auto-repair para corregir tablas que requieran actualizaciones dependientes de la versión. Activa automáticamente el --fix-db-names y --fix-table-names opciones. Se usa al actualizar
--compress Comprima toda la información enviada entre el cliente y el servidor si ambos admiten la compresión.
-B, --databases Consulta varias bases de datos. Tenga en cuenta que normalmente mysqlcheck trata el primer argumento como un nombre de base de datos y los siguientes argumentos como nombres de tabla. Con esta opción, no se proporcionan tablas y todos los argumentos de nombre se consideran nombres de base de datos.
-# , --debug[=name] Salida de registro de depuración. A menudo, esto es ‘d: t: o, nombre de archivo’.
--debug-check Verifique la memoria y abra el uso del archivo al salir.
--debug-info Imprime información de depuración al salir.
--default-auth=plugin Complemento de autenticación predeterminado del lado del cliente para usar.
--default-character-set=name Establezca el juego de caracteres predeterminado.
-e, --extended Si está utilizando esta opción con --check, asegurará que la tabla sea 100% consistente, pero llevará mucho tiempo. Si está utilizando esta opción con --repair, forzará el uso del método antiguo y lento de reparación con keycache, en lugar de la reparación mucho más rápida por clasificación.
-F, --fast Compruebe solo las tablas que no se hayan cerrado correctamente.
--fix-db-names Convierta los nombres de las bases de datos al formato utilizado desde MySQL 5.1. Solo se ven afectados los nombres de bases de datos que contienen caracteres especiales. Se utiliza al actualizar desde una versión anterior de MySQL.
--fix-table-names Convierta los nombres de las tablas (incluidas las vistas) al formato utilizado desde MySQL 5.1. Solo se ven afectados los nombres de tabla que contienen caracteres especiales. Se utiliza al actualizar desde una versión anterior de MySQL.
--flush Vacíe cada mesa después de la verificación. Esto es útil si no desea que las tablas marcadas ocupen espacio en las cachés después de la comprobación.
-f, --force Continúe incluso si obtenemos un error de SQL.
-?, --help Muestre este mensaje de ayuda y salga.
-h name, --host=name Conéctese al host especificado.
-m, --medium-check Más rápido que la verificación extendida, pero solo encuentra el 99,99 por ciento de todos los errores. Debería ser lo suficientemente bueno para la mayoría de los casos.
-o, --optimize Optimizar tablas.
-p, --password[=name] Contraseña que se utilizará al conectarse al servidor. Si usa el formulario de opción corto (-p), no puede haber un espacio entre la opción y la contraseña. Si omite el valor de la contraseña después de la --password o -p opción en la línea de comando, mysqlcheck solicita uno. La especificación de una contraseña en la línea de comando debe considerarse insegura. Puede utilizar un archivo de opciones para evitar dar la contraseña en la línea de comando.
-Z, --persistent Cuando utilice ANALYZE TABLE (--analyze), utiliza la opción PERSISTENTE PARA TODOS, que obliga a actualizar las estadísticas independientes del motor para esta tabla. Agregado en MariaDB 10.1.10
-W, --pipe En Windows, conéctese al servidor a través de una canalización con nombre. Esta opción solo se aplica si el servidor admite conexiones de canalización con nombre.
--plugin-dir Directorio para complementos del lado del cliente.
-P num, --port=num Número de puerto que se utilizará para la conexión o 0 de forma predeterminada para, en orden de preferencia, my.cnf, $ MYSQL_TCP_PORT, / etc / services, integrado por defecto (3306).
--process-tables Realizar la operación solicitada (comprobar, reparar, analizar, optimizar) en tablas. Habilitado por defecto. Usar --skip-process-tables deshabilitar. Agregado en MariaDB 10.0.18 y MariaDB 5.5.43.
--process-views[=val] Realice la operación solicitada (solo CHECK VIEW o REPAIR VIEW). Los valores posibles son NO, YES (corrija la suma de comprobación, si es necesario, agregue el campo mariadb-version), UPGRADE_FROM_MYSQL (igual que YES y alternar el algoritmo MERGE<->TENTABLE. Agregado en MariaDB 10.0.18 y MariaDB 5.5.43.
--protocol=name El protocolo de conexión (tcp, socket, pipe, memory) que se utilizará para conectarse al servidor. Útil cuando otros parámetros de conexión harían que se usara un protocolo diferente al que desea.
-q, --quick Si está utilizando esta opción con CHECK TABLE, evita que el cheque escanee las filas para buscar enlaces incorrectos. Esta es la verificación más rápida. Si está utilizando esta opción con REPAIR TABLE, intentará reparar solo el árbol de índice. Este es el método de reparación más rápido para una mesa.
-r, --repair Puede arreglar casi cualquier cosa, excepto las claves únicas que no son únicas.
--shared-memory-base-name Nombre de la memoria compartida que se usará para las conexiones de Windows que usan la memoria compartida a un servidor local (comenzó con el --shared-memory opción). Distingue mayúsculas y minúsculas.
-s, --silent Imprima solo mensajes de error.
--skip-database No procese la base de datos (distingue entre mayúsculas y minúsculas) especificada como argumento.
-S name, --socket=name Para las conexiones a localhost, el archivo de socket de Unix que se debe usar o, en Windows, el nombre de la canalización con nombre que se debe usar.
--ssl Habilita TLS. TLS también se habilita incluso sin configurar esta opción cuando se configuran otras opciones de TLS. A partir de MariaDB 10.2, el --ssl La opción no habilitará la verificación del certificado del servidor de forma predeterminada. Para verificar el certificado del servidor, el usuario debe especificar el --ssl-verify-server-cert opción.
--ssl-ca=name Define una ruta a un archivo PEM que debe contener uno o más certificados X509 para que las autoridades de certificación (CA) confiables lo usen para TLS. Esta opción requiere que use la ruta absoluta, no una ruta relativa. Consulte Descripción general de conexiones seguras: Autoridades de certificación (CA) para obtener más información. Esta opción implica la --ssl opción.
--ssl-capath=name Define una ruta a un directorio que contiene uno o más archivos PEM, cada uno de los cuales debe contener un certificado X509 para que una autoridad de certificación (CA) confiable lo utilice para TLS. Esta opción requiere que use la ruta absoluta, no una ruta relativa. El directorio especificado por esta opción debe ejecutarse a través del openssl rehash mando. Consulte Descripción general de conexiones seguras: Autoridades de certificación (CA) para obtener más información. Esta opción solo es compatible si el cliente se creó con OpenSSL o yaSSL. Si el cliente se creó con GnuTLS o Schannel, esta opción no es compatible. Consulte Bibliotecas de criptografía y TLS utilizadas por MariaDB para obtener más información sobre qué bibliotecas se usan en qué plataformas. Esta opción implica la --ssl opción.
--ssl-cert=name Define una ruta al archivo de certificado X509 que se utilizará para TLS. Esta opción requiere que use la ruta absoluta, no una ruta relativa. Esta opción implica la --ssl opción.
--ssl-cipher=name Lista de cifrados o conjuntos de cifrado permitidos para usar con TLS. Esta opción implica la --ssl opción.
--ssl-crl=name Define una ruta a un archivo PEM que debe contener uno o más certificados X509 revocados para usar con TLS. Esta opción requiere que use la ruta absoluta, no una ruta relativa. Consulte Descripción general de conexiones seguras: listas de revocación de certificados (CRL) para obtener más información. Esta opción solo es compatible si el cliente se creó con OpenSSL o Schannel. Si el cliente se creó con yaSSL o GnuTLS, esta opción no es compatible. Consulte Bibliotecas de criptografía y TLS utilizadas por MariaDB para obtener más información sobre qué bibliotecas se usan en qué plataformas.
--ssl-crlpath=name Define una ruta a un directorio que contiene uno o más archivos PEM, cada uno de los cuales debe contener un certificado X509 revocado para usar con TLS. Esta opción requiere que use la ruta absoluta, no una ruta relativa. El directorio especificado por esta opción debe ejecutarse a través del openssl rehash mando. Consulte Descripción general de conexiones seguras: listas de revocación de certificados (CRL) para obtener más información. Esta opción solo se admite si el cliente se creó con OpenSSL. Si el cliente se creó con yaSSL, GnuTLS o Schannel, esta opción no es compatible. Consulte Bibliotecas de criptografía y TLS utilizadas por MariaDB para obtener más información sobre qué bibliotecas se usan en qué plataformas.
--ssl-key=name Define una ruta a un archivo de clave privada para usar con TLS. Esta opción requiere que use la ruta absoluta, no una ruta relativa. Esta opción implica la --ssl opción.
--ssl-verify-server-cert Habilita la verificación del certificado del servidor. Esta opción está deshabilitada de forma predeterminada.
--tables Anula el --databases o -B opción tal que todos los argumentos de nombre que siguen a la opción se consideren como nombres de tabla.
--use-frm Para las operaciones de reparación en tablas MyISAM, obtenga la estructura de la tabla del archivo .frm, para que la tabla pueda repararse incluso si el encabezado .MYI está dañado.
-u, --user=name Usuario para iniciar sesión si no es el usuario actual.
-v, --verbose Imprime información sobre las distintas etapas. Puede dar esta opción varias veces para obtener aún más información. Consulte mysqlcheck y verbose, a continuación.
-V, --version Información de la versión de salida y Salida.
--write-binlog Escriba los comandos ANALYZE, OPTIMIZE y REPAIR TABLE en el registro binario. Habilitado por defecto; usar --skip-write-binlog cuando los comandos no deben enviarse a los esclavos de replicación.

Archivos de opciones

Además de leer las opciones de la línea de comandos, mysqlcheck también puede leer opciones de archivos de opciones. Si se proporciona una opción desconocida para mysqlcheck en un archivo de opciones, se ignora.

Las siguientes opciones se relacionan con la forma en que las herramientas de línea de comandos de MariaDB manejan los archivos de opciones. Deben darse como primer argumento en la línea de comandos:

Opción Descripción
--print-defaults Imprima la lista de argumentos del programa y salga.
--no-defaults No lea las opciones predeterminadas de ningún archivo de opciones.
--defaults-file=# Lea solo las opciones predeterminadas del número de archivo dado.
--defaults-extra-file=# Lea este archivo después de leer los archivos globales.
--defaults-group-suffix=# Además de los grupos de opciones predeterminados, lea también los grupos de opciones con este sufijo.

En MariaDB 10.2 y posterior, mysqlcheck está vinculado con MariaDB Connector / C. Sin embargo, MariaDB Connector / C aún no maneja el análisis de archivos de opciones para este cliente. Eso todavía lo realiza el código de análisis del archivo de opciones del servidor. Ver MDEV-19035 para más información.

Grupos de opciones

mysqlcheck lee las opciones de los siguientes grupos de opciones de los archivos de opciones:

Grupo Descripción
[mysqlcheck] Opciones leídas por mysqlcheck, que incluye MariaDB Server y MySQL Server.
[client] Opciones leídas por todos los programas cliente MariaDB y MySQL, que incluyen clientes MariaDB y MySQL. Por ejemplo, mysqldump.
[client-server] Opciones leídas por todos los programas cliente MariaDB y el servidor MariaDB. Esto es útil para opciones como socket y puerto, que es común entre el servidor y los clientes.
[client-mariadb] Opciones leídas por todos los programas cliente de MariaDB.

Notas

Valores predeterminados

Para ver los valores predeterminados de las opciones y también para ver los argumentos que obtiene de los archivos de configuración, puede hacer lo siguiente:

./client/mysqlcheck --print-defaults./client/mysqlcheck --help

mysqlcheck y reparación automática

Al correr mysqlcheck con --auto-repair (como lo hizo mysql_upgrade), mysqlcheck Primero verificará todas las tablas y luego, en una fase separada, reparará las que no pasaron la verificación.

mysqlcheck y todas las bases de datos

mysqlcheck --all-databases ignorará las tablas de registro internas general_log y slow_log, ya que no se pueden comprobar, reparar u optimizar.

mysqlcheck y detallado

Usando uno --verbose La opción le dará más información sobre lo que está haciendo mysqlcheck.

Usando dos --verbose Las opciones también le darán información de conexión.

MariaDB comenzando con 10.0.14

Si usa tres --verbose opciones también obtendrá, en stdout, todos los comandos ALTER, RENAME y CHECK que ejecuta mysqlcheck.

El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido con anticipación. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o de cualquier otra parte.