Configuración del slave
Ahora, empecemos con la configuración desde cero de un slave en una nueva máquina (Ubuntu 8.10).
- Accedemos, como hemos comentado antes, al archivo my.cnf para configurar en la nueva máquina el slave.
sudo gedit /etc/mysql/my.cnf - Añadimos las siguientes líneas en el apartado [mysqld] :
server-id=2
master-host = ip/DNShost
master-user = usuarioslave
master-password = clave_acceso_slave
master-port= 3306
replicate-do-db=base_datos
Comentamos las líneas de skip-networking y bind-address, como hemos dicho en el post anterior. - Reiniciamos el servidor MySQL
sudo /etc/init.d/mysql restart - Accedemos a la consola de MySQL como root:
mysql -u root -p - Miraremos el estado y configuración del slave, por si ya se hubiera inicializado automáticamente al arrancar MySql.
SHOW SLAVE STATUS \G;
Y a continuación, aparecerá algo así:
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: IP/DNS_host
Master_User: usuarioslave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000021
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: base_datos
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 235
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)NOTA: Si no se muestran estas opciones del slave, iguales o parecidas, podemos estar frente dos casos:
- Slave_IO_Running y Slave_SQL_Running estén a No, cuyo significado es que no están corriendo (no se ha producido un START SLAVE; o a fallado). Muchas veces se soluciona escribiendo dicha sentencia en la consola de MySQL.
- Los datos referentes al master, que hemos especificado en el archivo de configuración del slave, no son los correctos. Esto podría pasar en el caso de que previamente tuviéramos unos datos del máster que por cualquier operación sobre él se hayan modificado. Esto se puede resolver con el uso de la instrucción RESET SLAVE; qué lo que hace es eliminar los datos anteriores a una modificación del master y vuelve a cargar los nuevos introducidos en el archivo my.cnf del slave. Otra opción, que he encontrado por Internet, es el uso de la siguiente sentencia indicando los nuevos atributos del master:
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='IP/DNSnueva', MASTER_USER='usuarioslave', MASTER_PASSWORD='clave_acceso_slave', MASTER_LOG_FILE='file_log_determinado' ;
START SLAVE;
NOTA: Este último paso no lo hemos necesitado ya que, una vez inicializado el slave, ha conectado directamente con el master y ha recogido sus datos.
Con esto hemos acabado esta serie de post sobre la configuración de un master-slave en MySQL. Espero que os sirva de ayuda.
Esto es todo, por hoy, desde el zulo, pingüinos y manzanitas world!! (con el jefe perdido xD…)
3 comentarios
Replicación MySQL con Master-Slave sobre Ubuntu 8.10 (slave) - DbRunas escribió:
March 12, 2009 a las 11:38 pm (UTC 2)
[...] http://www.lauraberdasco.com/?p=296 [...]
Gustavo
escribió:
January 11, 2010 a las 7:31 am (UTC 2)
muchas gracias por el aporte, habia estado buscando algo asi
jako
escribió:
February 19, 2010 a las 12:24 am (UTC 2)
maravilloso post, llevaba un dia buscando esta solucion, muchisimas gracias, un saludo