En este tutorial, le mostraremos cómo configurar la replicación básica de MySQL en dos servidores CentOS 7, pero los mismos pasos deberían funcionar en todos los sistemas basados en RPM. Usaremos dos servidores virtuales CentOS 7 de prueba para este tutorial con las siguientes direcciones IP:
MAESTRO: 123.456.789.1
ESCLAVO: 123.456.789.2
Servidor maestro:
1. Iniciar sesión a través de SSH
Inicie sesión en el servidor maestro como usuario root
ssh root@IP_Address
2. Instalar servidor MySQL
e instale el servidor MySQL si aún no está instalado
yum install mysql-server mysql
3. Inicie el servidor MySQL
Inicie el servidor MySQL y habilítelo para que se inicie en el momento del arranque
systemctl start mysql systemctl enable mysql
4. Configurar servidor MySQL
A continuación, abra el archivo de configuración de MySQL con un editor de texto y agregue las siguientes líneas
vi /etc/my.cnf
server-id = 1 binlog-do-db=database relay-log = mysql-relay-bin relay-log-index = mysql-relay-bin.index log-bin = mysql-bin
No olvide reemplazar 'base de datos ‘ con el nombre real de la base de datos que desea replicar en el servidor esclavo.
5. Reinicie el servidor MySQL
Guarde el archivo de configuración y reinicie el servidor MySQL para que los cambios surtan efecto
systemctl restart mysql
6. Cree un usuario de MySQL para el servidor esclavo y configúrelo
Inicie sesión en el servidor MySQL como usuario raíz y cree un usuario que será utilizado por el esclavo
mysql -u root -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'%' IDENTIFIED BY 'PASSWORD' mysql> FLUSH PRIVILEGES; mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 245 | database | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) mysql> exit
Necesitaremos las coordenadas del maestro que se usarán para el servidor esclavo, así que escríbalas.
Archivo: mysql-bin.000001
Posición: 245
Reemplace 'CONTRASEÑA ' con una contraseña fuerte real.
Ahora, si la base de datos que desea replicar no está vacía, cree un volcado desde la base de datos
mysqldump -u root -p --master-data database > /root/database.sql
y transfiera el archivo de volcado al servidor esclavo
rsync -Waq -e ssh /root/database.sql 123.456.789.2:/root
Servidor esclavo:
7. Inicie sesión a través de SSH e instale el servidor MySQL en el servidor esclavo
El siguiente paso es configurar el servidor esclavo. Inicie sesión en el servidor esclavo a través de SSH como usuario raíz e instale el servidor MySQL como lo hicimos en el servidor maestro.
Después de instalar e iniciar el servidor MySQL, abra su archivo de configuración y agregue las siguientes líneas:
vi /etc/my.cnf
server-id = 2 master-host=123.456.789.1 master-connect-retry=60 master-user=slaveuser master-password=PASSWORD replicate-do-db=database relay-log = mysql-relay-bin log-bin = mysql-bin
8. Reinicie el servidor MySQL
Guarde el archivo y reinicie el servidor MySQL para que los cambios surtan efecto.
systemctl restart mysql
Importe el archivo de volcado de MySQL que creamos en el servidor maestro
mysql -u root -p < /root/database.sql
9. Configurar servidor MySQL
Inicie sesión en MySQL como usuario raíz, detenga el esclavo y configúrelo donde buscar el "archivo de registro maestro"
mysql -u root -p
mysql> slave stop; mysql> CHANGE MASTER TO MASTER_HOST='123.456.789.1', MASTER_USER='slaveuser', MASTER_PASSWORD='PASSWORD', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245; mysql> slave start;
Utilice el nombre de usuario y la contraseña de MySQL que creamos en el servidor maestro.
Puede verificar el estado del esclavo ejecutando el siguiente comando de MySQL:
mysql> show slave status;
*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 123.456.789.1 Master_User: slaveuser Master_Port: 3306 Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: database
Si ‘Slave_IO_State ' informa 'Esperando que el maestro envíe el evento', la replicación es exitosa.
Eso es todo. Es fácil. Si necesita más información sobre cómo establecer una configuración maestra de replicación, puede encontrarla en el sitio web oficial de MySQL.
Por supuesto, no tiene que configurar la replicación de MySQL en CentOS, si utiliza uno de nuestros servicios de hospedaje de MySQL, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que configuren la replicación de MySQL en CentOS por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato. También puede consultar las nuevas actualizaciones sobre Cómo instalar MySQL en CentOS 7.
PD. Si le gustó esta publicación sobre cómo configurar la replicación de MySQL en CentOS, compártala con sus amigos en las redes sociales usando los botones a la izquierda o simplemente deje una respuesta a continuación. Gracias.