Volver al blog

Configuración de la replicación en MySQL en Ubuntu

Configuración de la replicación en MySQL en Ubuntu

Replicación de MySQL es una característica interesante que permite a los usuarios administrar múltiples copias de una o más bases de datos MySQL. Los datos se copian automáticamente desde origen a réplica bases de datos. Puede ser útil en numerosas situaciones, como trabajar con los datos sin comprometer la base de datos principal, realizar copias de seguridad de datos o escalar el acceso a la base de datos, etc.

En esta guía, repasaremos los pasos para configurar una instancia de MySQL en un servidor como base de datos de origen, y luego configurar una instancia de MySQL en otro servidor para que funcione como su réplica.

Requisitos previos

Esta guía demostrará un ejemplo muy simple de replicación de MySQL. Involucra una base de datos de origen y una de réplica. La base de datos de origen es la copia primaria de la base de datos, mientras que la base de datos de réplica será la réplica de la de origen. Para nuestra demostración, se configuran dos servidores con las siguientes direcciones IP:

  • Servidor de origen: 31.171.240.179
  • Servidor réplica: 31.171.250.139

Cada servidor está configurado con la última versión de Ubuntu 20.04 server. Primero, siga los pasos del tutorial que muestran cómo configurar su servidor Ubuntu. Tenga en cuenta que el número de bases de datos réplica puede ser mayor. Esta guía asume que ya tiene MySQL instalado y configurado. ¿Necesita ayuda con la instalación de MySQL? Esta guía demuestra en detalle los pasos de instalación y uso básico de MySQL.

En resumen, aquí están los paquetes que necesita:

Los firewalls en ambos sistemas deben estar configurados para permitir el tráfico de ambos sistemas en el puerto 3306. Es el puerto predeterminado para MySQL. Puede obtener más información sobre los conceptos básicos de UFW con una demostración en nuestra publicación de blog.

Configuración de la base de datos de origen

  • Ajustando la configuración de MySQL

MySQL utiliza my.cnf como el archivo de configuración principal. Actualizaremos my.cnf para designar al servidor como el origen. Primero, abra el archivo de configuración con un editor de texto:

Luego, agregue las siguientes líneas debajo de la sección mysqld:

Replication in MySQL 4

¿Qué significan estas líneas?

  • bind-address: Esta es la entrada que define la asociación entre un servicio y una dirección IP. Por defecto, el valor puede ser 127.0.0.1 (localhost). El nuevo valor será la dirección IP del servidor.
  • server-id: En la replicación de MySQL, cada servidor debe tener un ID de servidor único. Puede ser cualquier número. Por simplicidad, se establece en 1.
  • log_bin: Almacena los detalles reales de la replicación. La base de datos réplica va a copiar todo lo registrado en el registro (log).
  • binlog_do_db: Esta entrada designa la base de datos que será objeto de replicación en el servidor réplica. Puede haber más de una base de datos. Aquí, la base de datos de ejemplo es newdatabase.

Después de realizar los cambios, guarde el archivo de configuración. MySQL requiere reiniciarse para cargar los cambios en el my.cnf:

  • Conceder permisos al usuario de la réplica

El siguiente paso es crear un usuario de réplica y otorgar los privilegios adecuados. Debe hacerse desde la consola de MySQL. Primero, inicie la consola de MySQL:

A continuación, cree un usuario dedicado para la base de datos réplica. Cambie el nombre de usuario y la contraseña según corresponda:

Ahora, otorgue los privilegios adecuados al usuario:

Puede obtener más información sobre los usuarios y permisos de MySQL en nuestra publicación de blog. A continuación, vuelva a cargar la tabla de privilegios para que los cambios surtan efecto:

FLUSH PRIVILEGES

  • Ajustando la base de datos

Necesitamos una copia de la base de datos de origen en la réplica. Es posible construir la estructura manualmente. Sin embargo, en la mayoría de los casos, eso es bastante inconveniente. Por eso, exportar la base de datos directamente es la solución más óptima. En este ejemplo, la base de datos de origen es newdatabase. Cambie la base de datos actual:

El siguiente comando bloqueará la base de datos, evitando nuevos cambios:

A continuación, verifique el estado de la base de datos:

Replication in MySQL 3

Desde esta posición, la base de datos réplica comenzará a replicarse desde el origen. Estos números serán útiles más adelante, así que guarde un registro de ellos. Si se realiza algún cambio desde la misma ventana, MySQL desbloqueará automáticamente la base de datos. Por lo tanto, se recomienda realizar los siguientes pasos en una pestaña o ventana de terminal diferente. La base de datos todavía está bloqueada. Expórtela a un archivo SQL portátil:

La tarea ya está terminada. A continuación, desbloquee la base de datos:

Finalmente, salga de la consola:

Configuración de la réplica

Ahora es el momento de configurar la base de datos réplica.

  • Importación de la base de datos de origen

Necesitamos una copia de la base de datos de origen en el servidor réplica. Utilizaremos el archivo SQL que exportamos anteriormente para hacerlo. Inicie la consola de MySQL:

Después de eso, cree una base de datos vacía usando el mismo nombre de base de datos:

A continuación, salga de la consola:

Ahora, importe el archivo SQL a la base de datos:

sudo mysql -u

  • Ajustando la configuración de MySQL

Hay algunas cosas que es necesario declarar en el archivo de configuración de MySQL. Abra el archivo de configuración en un editor de texto:

Las siguientes entradas irán bajo la sección mysqld. De lo contrario, no funcionará. El primero es el ID del servidor. Como se mencionó anteriormente, tiene que ser único para todos los servidores en la configuración de replicación origen-réplica. Para la demostración, se establece en 2:

A continuación, agregue las siguientes líneas:

Replication in MySQL 2

Aquí, solo relay-log es una entrada nueva. Es el registro que crea el servidor réplica durante la replicación. El formato del registro es el mismo que el del registro binario. Guarde el archivo de configuración y reinicie MySQL:

  • Habilitando la replicación

Finalmente, estamos listos para habilitar la replicación desde dentro de MySQL. Inicie la consola de MySQL:

Ejecute el siguiente comando. Primero, cambie la dirección IP, el nombre de usuario y las contraseñas según corresponda:

CHANGE MASTER TO MASTER_HOST

El comando logra lo siguiente:

  • El servidor actual se marca como la réplica del servidor de origen.
  • El servidor réplica tiene las credenciales de inicio de sesión adecuadas.
  • El servidor réplica sabe desde dónde empezar a replicar. ¿Recuerda el estado de la base de datos que verificamos en el servidor de origen? El archivo de registro de origen y la posición del registro provienen de allí.

Finalmente, active el servidor réplica:

START REPLICA

  • Miscelánea

¿Necesita verificar los detalles del estado actual de la réplica? Ejecute el siguiente comando en la consola de MySQL. El \G al final es para reorganizar los textos para hacerlos más legibles:

Replication in MySQL 1

Si hay un problema de conexión, intente iniciar el servidor réplica para omitirlo:

Conclusión

La replicación de MySQL tiene muchas implicaciones. Es solo una breve demostración de su forma básica. Sin embargo, puede extenderse fácilmente a múltiples configuraciones de origen-réplica. Los mismos pasos también se aplicarán a cualquier configuración compleja de nivel superior. Siempre es una buena idea probar cualquier configuración después. Intente realizar algunos insertdelete o update en la base de datos de origen. Si la configuración funciona, la base de datos réplica debería reflejar todo correctamente.

Además, puede echar un vistazo a más recursos de nuestro blog que cubren lo que puede hacer con MySQL:

¡Feliz informática!

 

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.