La configuración de la separación de lectura y escritura de MySQL es un método de arquitectura de base de datos común, que puede distribuir solicitudes de lectura y escritura a diferentes instancias de MySQL para mejorar el rendimiento y la escalabilidad de la base de datos. Aquí hay una guía paso a paso fácil de usar:
- Implemente la base de datos maestra (Master) y al menos una base de datos esclava (Slave). Asegúrese de que todas las instancias de la base de datos tengan MySQL instalado y funcionando correctamente.
-
Realice cambios de configuración en la base de datos principal. Edite el archivo de configuración de MySQL (generalmente
my.cnf
), busque las siguientes líneas y cámbielas según corresponda:server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = your_database_name
Estas configuraciones habilitarán el registro binario (binary log) y especificarán la base de datos que se replicará.
-
Reinicie la base de datos maestra para que los cambios de configuración surtan efecto:
sudo service mysql restart
-
Realice cambios de configuración en la base de datos esclava. Edite el archivo de configuración de MySQL, busque las siguientes líneas y cambie en consecuencia:
server-id = 2 relay_log = /var/log/mysql/mysql-relay-bin.log read_only = 1
Estas configuraciones habilitarán el registro de retransmisión y establecerán la base de datos esclava en modo de solo lectura.
-
Reinicie la base de datos esclava para que los cambios de configuración surtan efecto:
sudo service mysql restart
-
Cree un usuario de MySQL para la replicación en la base de datos maestra y otorgue privilegios de replicación al usuario:
CREATE USER 'replication_user'@'slave_ip_address' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip_address'; FLUSH PRIVILEGES;
Será
slave_ip_address
reemplazada por la dirección IP de la base de datos esclavapassword
y la contraseña del usuario. -
Configure la replicación en la base de datos esclava. Conéctese a la instancia de MySQL de la base de datos esclava y ejecute el siguiente comando:
STOP SLAVE; CHANGE MASTER TO MASTER_HOST='master_ip_address', MASTER_USER='replication_user', MASTER_PASSWORD='password'; START SLAVE;
Reemplace
master_ip_address
la dirección IP de la base de datos principalpassword
con la contraseña del usuario de replicación. -
Asegúrese de que la base de datos esclava esté correctamente conectada a la base de datos maestra e inicie la replicación. El estado de replicación se puede verificar con el siguiente comando:
SHOW SLAVE STATUS\G
A través de los pasos anteriores, puede configurar la separación de lectura y escritura de MySQL. En este punto, la solicitud de escritura se puede enviar a la base de datos maestra y la solicitud de lectura se puede enviar a cualquier base de datos esclava, compartiendo así la carga de la base de datos maestra y mejorando el rendimiento y la escalabilidad de la base de datos. Tenga en cuenta que durante la configuración, tenga cuidado con la información confidencial (como las contraseñas) y asegúrese de que la conectividad de red y la configuración de seguridad entre las instancias de base de datos sean correctas.