*Cube-Host– servicios completos en la nube!!

Migración de bases de datos MySQL: un método seguro y paso a paso

MySQL database migration a step-by-step and secure method

Introducción

La migración de una base de datos MySQL es una operación crítica que afecta a la integridad de los datos, la estabilidad de las aplicaciones y las funciones de restauración. Le explicamos cómo utilizar mysqldump, migrar usuarios, preservar la integridad de los datos y tener en cuenta las sutilezas de las diferentes versiones de MySQL.

¿Cuándo es necesaria una migración?

  • Transferencia a un nuevo proveedor de alojamiento o a un nuevo servidor.
  • Actualización de la versión de MySQL.
  • Configuración de la replicación o la distribución de la carga.
  • Consolidación de bases de datos.

Riesgos y cómo minimizarlos

  • Incompatibilidad de versiones: diferencias en sql_mode, default_authentication_plugin, codificaciones (utf8mb4_unicode_ci vs utf8mb4_0900_ai_ci).
  • Pérdida de permisos: los usuarios se registran por separado y deben transferirse manualmente.
  • Tiempo de inactividad de la aplicación durante la migración sin replicación.
  • Volcado incoherente: –single-transaction solo funciona con InnoDB; para MyISAM, es necesario FLUSH TABLES WITH READ LOCK.

Plan paso a paso para la migración

Paso 1. Crear un volcado

Palabra clave principal (1): migración de base de datos MySQL.

Crear un volcado conservando la lógica:

				
					mysqldump -u root -p --single-transaction --routines --triggers --events olddb > dump.sql
				
			
  • –single-transaction reduce los bloqueos (solo funciona para InnoDB).
  • –routines, –triggers, –events conserva los procedimientos, los desencadenantes y los programadores de eventos.

Paso 2. Transfiera el volcado

Transfiéralo mediante SCP o rsync a través de un canal seguro. Compruebe la integridad del archivo:

				
					sha256sum dump.sql
				
			

Paso 3. Creación de la base de datos

En el nuevo servidor:

				
					mysql -u root -p -e "CREATE DATABASE newdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
				
			

Nota: utf8mb4_unicode_ci puede diferir de utf8mb4_0900_ai_ci en MySQL 8.0.

Paso 4. Importe el volcado.

				
					mysql -u root -p newdb < dump.sql
				
			

Paso 5. Transferir usuarios y permisos

  • Ejecute SHOW GRANTS FOR «user»@“host” y transfiera CREATE USER/GRANT.
  • En MySQL 8.0, puede utilizar mysqlpump –users.
  • Tenga en cuenta default_authentication_plugin (en 8.0 es caching_sha2_password).

Paso 6. Comprobación de la integridad

  • Compare el número de filas de las tablas.
  • Compruebe las sumas de control (pt-table-checksum).
  • Pruebe las consultas SQL importantes.

Paso 7. Minimizar el tiempo de inactividad

Para sistemas críticos, utilice la replicación:

  1. Configure el nuevo servidor como esclavo.
  2. Espere a que se sincronice.
  3. Cambie del maestro al esclavo sin tiempo de inactividad.

Lista de comprobación antes de la migración

Unidad

¿Qué hay que comprobar?

Versiones

Compatibilidad con MySQL/MariaDB

Codificación

Asegúrate de que utf8mb4 y las clasificaciones sean correctas.

Modo SQL

Comparar sql_mode

Derechos

Verificar GRANT

Complementos

default_authentication_plugin

Réplica

Comprobar el retraso

Rollback

  • Cree una copia de seguridad del servidor antiguo.
  • Para realizar un rollback, puede iniciar el servidor antiguo como esclavo y, a continuación, volver atrás.

Conclusión

La migración de una base de datos MySQL es segura si se tienen en cuenta las versiones, se utilizan copias de seguridad y se comprueba la integridad. La replicación evita el tiempo de inactividad y las copias de seguridad permiten realizar una restauración rápida. La migración de una base de datos MySQL requiere un enfoque minucioso en términos de permisos, clasificación y parámetros.