He creado una configuración mysql maestro-esclavo y las cosas se ven bien. el "mostrar estado maestro"; en esclavo no muestra ningún error. esta es la salida
Slave_IO_State: Waiting for master to send event
Master_Host: 109.123.100.58
Master_User: replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 106
Relay_Log_File: relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
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: 106
Relay_Log_Space: 106
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
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Sin embargo, en la replicación en esclavo no parece estar sucediendo cuando el maestro sufre cambios
En el maestro. MOSTRAR ESTADO MAESTRO
+------------------+----------+--------------+-------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+-------------------------+
| mysql-bin.000001 | 639495 | | mysql,informationschema |
+------------------+----------+--------------+-------------------------+
en esclavo SHOW PROCESSLIST rinde
+-----+-------------+-----------+------+---------+-------+-----------------------------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+-------------+-----------+------+---------+-------+-----------------------------------------------------------------------+------------------+
| 174 | system user | | NULL | Connect | 25777 | Waiting for master to send event | NULL |
| 175 | system user | | NULL | Connect | 25777 | Has read all relay log; waiting for the slave I/O thread to update it | NULL |
| 199 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+-----+-------------+-----------+------+---------+-------+-----------------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)
Me estoy perdiendo de algo
mysql
replication
Soyeed
fuente
fuente
SHOW MASTER STATUS
también? Falta el bit superior, creo.SHOW MASTER STATUS
en el esclavo . Esta información no es relevante a menos que el esclavo también sirva como maestro para otros esclavos más abajo.SHOW PROCESSLIST
en el maestro, ¿ve la conexión entrante del esclavo? Debieras. También, me gustaría probarSTOP SLAVE IO_THREAD;
a continuación,START SLAVE IO_THREAD;
en el esclavo y ver cómo la salida deSHOW SLAVE STATUS
(en el esclavo) cambia, en todo caso.Respuestas:
El resultado que presentó es muy confuso. Por un lado, el maestro muestra:
El esclavo
PROCESSLIST
indica que la replicación funciona (el hilo IO está conectado al maestro, el hilo SQL está esperando).El esclavo
SHOW SLAVE STATUS
nuevamente afirma que todo está bien, pero la posición del amo lo es106
.¿Se emiten todas estas salidas aproximadamente al mismo tiempo? Si no, entonces no son valiosos.
Comprobaría lo siguiente:
109.123.100.58
realmente tu maestro?SHOW PROCESSLIST
En la lista maestra la conexión realizada por el esclavo bajo elreplica
usuario?server-id
configuraciones para maestro y esclavo?replicate-do-*
oreplicate-ignore-*
ajustes en elmysql.cnf
archivo?fuente
+-------+------+-----------+------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +-------+------+-----------+------+---------+------+-------+------------------+ | 23243 | root | localhost | NULL | Query | 0 | NULL | SHOW PROCESSLIST | +-------+------+-----------+------+---------+------+-------+------------------+
Mejor que usar binlog-ignore-db es usar el filtrado del lado esclavo. Estaba atrapado en una situación similar, sí, me llevó todo un día descubrirlo:
Me perdí algo grande !!!
La diferencia entre
En el lado esclavo. Y
no funcionó para mí en la mesa. Tuve que usar
Supongo que esto hubiera funcionado para un comodín
... Ahora para descubrir cómo replicar la misma tabla de múltiples maestros. Bien, lo descubrí, MySQL no lo admite de forma nativa; MariaDB 10 hace.
También tuve otro problema inicialmente: mi contraseña tenía más de 32 caracteres. ¡Abucheo!
fuente
También me encontré con este problema. La causa raíz era tener el maestro
server_id=0
. MariaDB tiene un comportamiento especial para elserver_id=0
cual no permitirá que la replicación funcione.Cuando comencé a indexar en base a 1, todo funcionó bien.
fuente
No le dijo al esclavo qué base de datos replicar: la variable Replicate_Do_DB está vacía.
Intenta agregar la línea
replicate-do-db = name_of_db (donde "name_of_db" es el nombre de la base de datos para replicar)
en su my.cnf (en esclavo) y reinicie el servidor esclavo.
EDITAR: No creo que mi respuesta sea la solución correcta, mientras tanto ;-)
Quizás eche un vistazo a esta página: http://dev.mysql.com/doc/refman/5.1/en/replication-problems.html
fuente
+------------------+----------+--------------+-------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+-------------------------+ | mysql-bin.000004 | 106 | | mysql,informationschema | +------------------+----------+--------------+-------------------------+
entry binlog_ignore_db = mysql binlog_ignore_db = informationschema