¿Cómo utilizar el comando Mysqlcheck en MySQL para reparar bases de datos?
Mysqlcheck es un comando utilizado para el mantenimiento de tablas. Con este comando puede comprobar las tablas de una base de datos, reparar la base de datos, optimizar el rendimiento de las tablas o analizar las tablas.
Debe tenerse en cuenta que este comando bloquea las tablas. Además, el servidor MySQL debe estar en ejecución para que pueda utilizar el comando.
El siguiente comando muestra el estado del servidor en Windows:
sc consulta mysqlXX
Aquí XX es la versión de MySQL.
El comando proporciona la siguiente información:
- Nombre del servicio es el nombre del servicio.
- El tipo WIN32_OWN_PROCESS significa que este servicio no depende de otros servicios.
- El estado del servicio. En este caso es RUNNING. También puede ser PARADO o EN PAUSA.
- Si el WIN32_EXIT_CODE es 0, significa que el servicio ha finalizado sin problemas.
- CHECKPOINT igual a 0 significa que no hay punto de control. Este valor es para uso interno.
- WAIT_HINT estima el tiempo en ms que el servicio necesita para finalizar la operación.
Veamos algunos ejemplos de ejecución del comando.
En la carpeta bin de MySQL, ejecute este comando en la línea de comandos:
Mysqlcheck -repair stellardb
Este comando repara la base de datos llamada stellardb.
El siguiente comando comprime la conexión utilizada por el comando.
mysqlcheck -r -compress stellardb
Nota: Las opciones -repair y -r son idénticas.
En el siguiente ejemplo, la base de datos se repara automáticamente si es necesario. La opción de reparación automática comprueba el estado de las tablas. Si hay errores, se reparan.
mysqlcheck -r -auto-repair stellardb
La siguiente opción se utiliza para comprobar sólo las tablas que no se han cerrado correctamente.
mysqlcheck -fast stellardb
Si desea depurar, puede utilizar la opción -debug. En el siguiente ejemplo, se crea un registro en el archivo c:\log\debug.log.
mysqlcheck -debug=d:t:o,c:\log\debug.log stellardb
En el ejemplo anterior:
- d significa depuración.
- t significa que la marca de tiempo debe incluirse en el archivo de registro.
- o significa que te conectas a un nombre de archivo.
Por último, existe la opción “Analizar”, con la que puede comprobar las estadísticas y la distribución de claves de una tabla. El siguiente ejemplo muestra cómo puede utilizar esta opción.
mysqlcheck -analizar stellardb
Una solución alternativa
A veces no es suficiente utilizar el comando mysqlcheck. Necesita utilizar otras herramientas para reparar la base o bases de datos MySQL dañadas. Una de estas herramientas es Stellar Repair for MySQL.
Para reparar la base de datos, debe detener el servicio MySQL y hacer una copia de la carpeta con la base de datos.
Puede detener los servicios mediante los servicios de Windows.
Introduzca Servicios en la barra de búsqueda de Windows y haga clic en la aplicación Servicios. En la página Servicios, haga clic con el botón derecho en el servicio y seleccione Detener.
Después de parar, busque las bases de datos. Normalmente se almacenan en la siguiente ubicación:
C:\ProgramDataMySQLMySQL Server X.X\Data
X.X es el número de versión.
Copie la carpeta de datos a otra ubicación. Puedes hacerlo manualmente en Windows o a través de la línea de comandos:
xcopy /s /e /i “C:\ProgramDataMySQL\MySQL Server 8.0\Data” “c:\backup\data”
Una vez copiados los datos, abra Stellar Repair for MySQL, haga clic en el botón Examinar y seleccione la carpeta en el directorio c:\backup\data.
Seleccione la base o bases de datos que desea reparar y pulse el botón Reparar.
Pulse el icono Guardar para guardar los objetos.
Puedes guardar y restaurar la información en una base de datos o exportarla a varios formatos como Excel, HTML y CSV.
Conclusión
En este artículo hemos discutido varias opciones que el comando mysqlcheck ofrece para comprobar y reparar la base de datos MySQL. Si el comando no puede reparar la base de datos, puede utilizar Stellar Repair for MySQL. Es un potente software para reparar bases de datos MySQL dañadas y recuperar todos los objetos de la base de datos.
Was this article helpful?