Suscribirse a la fuente RSS

«

»

Mar
12

Replicación MySQL con Master-Slave sobre Ubuntu 8.10 (slave)

Configuración del slave

Ahora, empecemos con la configuración desde cero de un slave en una nueva máquina (Ubuntu 8.10).

  1. Accedemos, como hemos comentado antes, al archivo my.cnf para configurar en la nueva máquina el slave.

    sudo gedit /etc/mysql/my.cnf
  2. 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.
  3. Reiniciamos el servidor MySQL

    sudo /etc/init.d/mysql restart
  4. Accedemos a la consola de MySQL como root:

    mysql -u root -p
  5. 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

  1. GustavoNo Gravatar escribió:

    muchas gracias por el aporte, habia estado buscando algo asi

  2. jakoNo Gravatar escribió:

    maravilloso post, llevaba un dia buscando esta solucion, muchisimas gracias, un saludo

Leave a Reply

Tu email nunca se publicará.

Puedes utilizar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>