La replicacion en MySQL es de una sola via, osea que uno de los
servidores alimenta al(los) otro(s) formando una relacion
maestro-esclavo.
Supongamos que se tienen dos maquinas servidor1.dominio.com y
servidor2.dominio.com. usaremos a servidor1 como maestro y servidor2
como esclavo.
Los pasos a seguir serian los siguientes:
1) Utilizar una version de MySQl 3.23.15 o superior (3.23.25 es la mas
reciente asi que usen esa).
2) Otorgar a un usuario existente o crear uno nuevo con permisos FILE
para conectarse desde la maquina que sera el esclavo:
GRANT FILE ON basededatos.tabla TO
[email protected]
IDENTIFIED BY 'password';
3) Tomar una imagen de la base de datos que se desea copiar con el
comando:
mysqldump --opt basededatos > basededatos.sql
Esto creara un archivo de texto con los CREATE TABLE e INSERT necesarios
para crear las tablas y meterle datos.
4) En el archivo /etc/my.cnf del maestro colocar la siguiente linea y
luego reiniciar mysql:
log-bin
Esto hace que el el maestro genere logs binarios con los updates que
son necesarios para la replicacion.
Para reiniciar mysql se usa:
/etc/rc.d/init.d/mysql stop
/etc/rc.d/init.d/mysql start
5) Cargar el snapshot en el esclavo, copian el archivo que se genero
antes en el maestro al esclavo y ejecutan:
mysql basededatos < basededatos.sql
6) Editan el /etc/my.cnf del esclavo y reiniciarlo, se agregan las
siguientes lineas en la seccion [mysqld]:
master-host=servidor1.dominio.com
master-user=rep_user
master-password=password
Luego reinician mysql en el esclavo y listo, estaran replicando y
tendran los datos sincronizados.
Luego de esto si quieren experimentar un poco mas, pueden colocar un
servidor como maestro al que se le dirigen todos los UPDATE, INSERT
,DELETE y tener varios servidores esclavos a los cuales se direccionan
los querys.
Como dije al principio, la replicacion es de una sola via, pero eso no
impide que un servidor sea maestro y esclavo al mismo tiempo.
Para ver el estado del maestro dentro del cliente mysql usen el
comando:
SHOW MASTER STATUS;
y para ver el del esclavo (en el esclavo):
SHOW SLAVE STATUS;
Esto es solo lo basico, hay mas opciones, consulten el manual de MySQL
en
http://www.mysql.com
P.D. no olviden verificar que su /etc/hosts este al dia
-