Nuestro grupo de especialistas luego de ciertos días de investigación y recopilar de información, dieron con la respuesta, queremos que resulte de gran utilidad en tu trabajo.
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.