Replicación MySQL » History » Version 4

« Previous - Version 4/8 (diff) - Next » - Current version
Antonio González Gómez, 12/16/2015 01:11 PM


Replicación MySQL

Se eligio una configuracion master to salve, en este caso se utilizo el Servidor coati como master y freud como slave.
Primeramente se debe aclarar que las 2 bases deben tener la misma version de mysql, si bien es cierto que pueden funcionar con una minima diferencia, se aconseja que se tenga la ultima version estable.
El primer paso, será modificar la configuración del master, para incluir el apartado referente a la replicación. Para ello, modificaremos su fichero /etc/mysql/my.cnf (sería recomendable hacer un backup del fichero, por si las moscas) y añadiremos lo siguiente, al final del apartado [mysqld]:


    [mysqld]
    ...
    # MASTER-SLAVE #
    server-id=1
    log-bin=mysql-bin
    binlog_format=mixed
    sync_binlog=1
    max-binlog-size=500M
    expire_logs_days=4
    innodb_flush_log_at_trx_commit=1


Si ya se había modificado el fichero my.cnf, será importante revisar que no se haya declarado anteriormente alguno de estos parámetros.

PASO 2 SLAVE - Configuración.
2.1. CHANGE MASTER TO

El método recomendado es usar el comando CHANGE MASTER TO en el slave. La sintaxis es la siguiente:

CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
MASTER_USER=<user>, MASTER_PASSWORD=<password> ;

Por ejemplo:


    CHANGE MASTER TO MASTER_HOST='192.168.2.175', MASTER_PORT=3306,
    MASTER_USER='replication', MASTER_PASSWORD='slavePass';


Queda claro que se necesitará indicar lo siguiente:

La IP del master, con la variable "master-host", así como el puerto (por defecto el 3306).
Las credenciales del usuario mysql, que se usará para la replicación, mediante "master-user" y "master-password". Este usuario lo daremos de alta despues.

PASO 3 - Reiniciar ambos mysqld

/etc/init.d/mysqld restart o service mysql restart

PASO 4 - MASTER - Crear usuario

Se necesitará un usuario mysql para la replicación. En este paso, daremos de alta al usuario en el master, únicamente.

    mysql> GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' IDENTIFIED BY 'slave';
    mysql> FLUSH PRIVILEGES;
    mysql> GRANT RELOAD ON *.* TO 'replication'@'%';
    mysql> GRANT SUPER ON *.* TO 'replication'@'%';
    mysql> FLUSH PRIVILEGES;


PASO 5 - MASTER - Backup datos MySQLDump.