¿Cómo reparar una base de datos MySQL en Linux?

Summary: Lea este blog para averiguar cómo reparar base de datos MySQL en Linux manualmente o mediante el uso de software de reparación de base de datos MySQL. Utilice el software para recuperar todos los componentes de base de datos sin afectar el archivo de base de datos original. Puede descargar la versión demo gratuita del software para obtener una vista previa de todos los componentes de base de datos recuperables.

Cuando se ejecuta la base de datos MySQL en una máquina Linux, la base de datos puede corromperse debido a varias razones, como ataque de virus en la máquina, fallo de hardware, etc. Puede intentar restaurar la base de datos a partir de una copia de seguridad actualizada. Sin embargo, si la copia de seguridad no está disponible, puede intentar reparar la base de datos MySQL.

Métodos para reparar bases de datos MySQL en Linux

Método 1 – Reparación manual de la base de datos MySQL

Nota: El paso a paso manual para reparar la base de datos MySQL puede diferir dependiendo del motor de almacenamiento que esté utilizando: InnoDB o MyISAM. Por lo tanto, la solución de problemas de corrupción de base de datos mediante la ejecución de diferentes pasos manuales requiere tiempo, aumentando el tiempo de inactividad de base de datos. Utilice una herramienta de reparación de bases de datos MySQL para reparar rápidamente la base de datos corrupta y restaurarla a su forma original.  

Aquí, discutiremos el proceso paso a paso para reparar una base de datos MySQL corrupta en un sistema basado en Linux:

Paso 1: Haga una copia de seguridad de su base de datos

Asegúrese de hacer una copia de seguridad de su base de datos antes de intentar repararla. Si lo hace, evitará que su base de datos sufra más pérdidas. Para hacer una copia de seguridad de sus archivos de base de datos MySQL, siga estos pasos:

1 Inicie sesión en su servidor a través de SSH

2. Detenga su servidor MySQL utilizando cualquiera de los siguientes comandos basados en su distribución de Linux:

Para CentOS y Fedora, introduzca:

service mysqld stop

Para Ubuntu y Debian, introduzca:

service mysql stop

3. Para hacer una copia de seguridad del archivo de base de datos, escriba:

cp -r /var/lib/mysql /var/lib/mysql_backup

4. Reinicie el servidor MySQL ejecutando el siguiente comando en su sistema Linux:

service mysqld start

Paso 2: Ejecute “mysqlcheck” para comprobar y reparar bases de datos MySQL

Nota: El comando mysqlcheck es útil para los usuarios que quieren reparar la base de datos MySQL y las tablas sin detener el servicio MySQL.

Una vez que haya realizado una copia de seguridad de sus bases de datos, ejecute el comando mysqlcheck para comprobar y reparar la base de datos y las tablas para los motores de base de datos MyISAM o InnoDB. Siga estos pasos para utilizar mysqlcheck para reparar la base de datos:

1. Como usuario root, introduzca el siguiente comando:

cd /var/lib/mysql

2. Compruebe si la base de datos y todas sus tablas están corruptas escribiendo el comando:

mysqlcheck nombre_base_de_datos

Para comprobar si hay errores en una tabla específica de la base de datos, escriba el comando

mysqlcheck nombre_base_de_datos nombre_tabla

3. Si la tabla no está dañada, aparece un mensaje de OK. Sin embargo, si la tabla de la base de datos muestra algún error, deberá repararla mediante el siguiente comando:

mysqlcheck -r nombre_base_de_datos nombre_tabla

Si la ejecución del comando mysqlcheck no soluciona el problema, continúe con el siguiente paso.

Paso 3: Realizar diagnósticos específicos del motor

Ejecute diagnósticos específicos del motor de almacenamiento (InnoDB o MyISAM) utilizado por la base de datos y las tablas. Siga el procedimiento indicado a continuación para el motor de almacenamiento de la base de datos de su tabla.

Reparación de tablas MyISAM con myisamchk

Cuando su base de datos se ejecuta en el motor de almacenamiento MyISAM, ejecute el comando myisamchk para repararla. Para ello, siga estos pasos:

Nota: El comando myisamchk sólo funciona para el motor de almacenamiento MyISAM.

1. Detenga su servidor utilizando cualquiera de los siguientes comandos para su distribución de Linux:

Para CentOS y Fedora, utilice:

service mysqld stop

Para Debian y Ubuntu, utilice:

service mysql stop

2. Escriba lo siguiente:

cd /var/lib/mysql

Cambie el directorio anterior por el directorio donde se encuentra su base de datos corrupta. Por ejemplo, si la base de datos se llama db1, escriba cd db1.

3. Compruebe las tablas corruptas en la base de datos, utilizando el siguiente comando:

myisamchk nombre_tabla

Para comprobar todas las tablas de la base de datos, escriba el siguiente comando:

myisamchk *.MYI

4. Una vez que haya identificado las tablas dañadas en la base de datos, utilice el comando mysqlchk para reparar las tablas siguiendo este comando:

myisamchk -recuperar tabla

5. Reinicie el servidor:

Para CentOS y Fedora, escriba:

service mysqld start

Para Debian y Ubuntu, escriba:

service mysql start

Ejecución del proceso de recuperación de InnoDB

Para reparar la base de datos que se ejecuta en el motor de almacenamiento InnoDB, siga estos pasos:

  1. Abra el archivo de configuración de MySQL “my.cnf”. La ubicación del archivo my.cnf variará dependiendo de su sistema operativo Linux. En CentOS y Fedora, puede encontrar el archivo en el directorio ‘/etc’. Y en Debian y Ubuntu, el archivo de configuración se encuentra en el directorio ‘/etc/mysql’.
  2. Una vez localizado el archivo my.cnf, busca la sección [mysqld].
  3. En la sección [mysqld], añada la siguiente línea:
innodb_force_recovery=4

4. Guarde los cambios en el archivo de configuración de MySQL y, a continuación, reinicie el servidor MySQL:

Para CentOS y Fedora:

service mysqld restart

Para Debian y Ubuntu:

service mysql restart

5. Ejecute el siguiente comando para exportar todas las bases de datos al archivo databasesbkp.sql:

mysqldump -todas-bases-de-datos > bases-de-datosbkp.sql

6. Inicie el servicio mysql y, a continuación, utilice el comando DROP DATABASE para intentar eliminar la base de datos afectada.

Nota: Si no puede eliminar una base de datos, elimínela manualmente después de detener el servidor MySQL.

7. Detenga el servidor MySQL.

8. Escriba el siguiente comando para eliminar la base de datos manualmente:

cd /var/lib/mysql rm -rf base de datos

Sustituya “base de datos” por el nombre de la base de datos que desea reparar.

9. Abra de nuevo el archivo my.cnf y comente la siguiente línea:

#innodb_force_recovery=4     

Esto desactivará el modo de recuperación InnoDB.

10. Guarde los cambios realizados en el archivo my.cnf y, a continuación, inicie su Servidor MySQL.

11. Intente restaurar la base de datos a partir de la copia de seguridad creada en el paso 5:

mysql < basesdatosbkp.sql

Ahora compruebe la base de datos restaurada. Si el problema persiste, utilice un software especializado de reparación de bases de datos MySQL para restaurar la base de datos.

Método 2 – Reparación de bases de datos MySQL con Stellar Repair for MySQL

Stellar Repair for MySQL es un potente software de reparación de bases de datos MySQL recomendado por los administradores de bases de datos para reparar bases de datos gravemente dañadas y restaurar todos sus objetos. El software permite la reparación de base de datos MySQL en Linux, así como el sistema de Windows.

Para reparar una base de datos MySQL dañada creada en un sistema Linux, siga estos pasos:

Paso 1: Descargue e instale el software. Para la instalación del software, abra el Terminal de Linux y, a continuación, introduzca el siguiente comando:

$ sudo yum install nombre_de_la_aplicacion

Nota: Aquí “app_name” es la ruta del paquete de software Stellar Repair for MySQL que necesita instalar.

Paso 2: Inicie el software. La interfaz principal del software se abre con una ventana de Instrucciones. Haga clic en Aceptar para continuar.

Paso 3: En la ventana Seleccionar Carpeta de Datos, seleccione la versión de su instalación MySQL, luego busque y seleccione la carpeta de datos que contiene la base de datos corrupta.

Paso 4: Se muestra la lista de las bases de datos almacenadas en la carpeta de datos seleccionada. Selecciona todas las bases de datos o una específica que quieras reparar y haz clic en Reparar.

Paso 5: Haga clic en Aceptar cuando aparezca el cuadro de diálogo “Reparación finalizada”.

Paso 6: El software muestra una vista previa de los componentes recuperables de la base de datos MySQL.

Paso 7: Haga clic en Save en el menú File para guardar el archivo de base de datos MySQL reparado.

Paso 8: En el cuadro de diálogo “Guardar base de datos”, seleccione MySQL en Guardar como y, a continuación, introduzca los datos necesarios para conectarse a su servidor MySQL. Haga clic en Guardar para guardar el archivo de base de datos reparado en MySQL Server. 

Paso 9: Aparecerá el mensaje “Save Complete” cuando se haya completado el proceso de guardar el archivo reparado.

Después de ejecutar estos pasos, la base de datos MySQL será reparada.

Conclusión

La reparación de bases de datos MySQL en sistemas basados en Linux mediante el método manual no garantiza la restauración de todos los componentes de la base de datos. Puede funcionar para reparar problemas menores de la base de datos, pero no para reparar una base de datos MySQL muy dañada. El uso del software Stellar Repair for MySQL puede ayudarle a reparar una base de datos gravemente dañada y recuperar todos sus componentes, conservando la estructura de archivos y el contenido originales.

Related Post

Exit mobile version