it-swarm-eu.dev

Master - replikace master nefunguje

Pro replikaci master-master jsem nakonfiguroval dva servery WAMP spuštěné na různých počítačích. Používám pro síť linksys router. Vytvořil jsem bezdrátovou síť, ale jedna ze serverových schránek nemá WIFI, takže jsem ji pomocí kabelu připojil k routeru. Po konfiguraci se zdá, že je vše v pořádku, ale zdá se, že servery se navzájem spojují jako otroky. Níže je uveden stav serveru.

Variable               Value
Slave_IO_State:        Connecting to master
Master_Host:           192.168.1.100
Master_User:           master
Master_Port:           3306
Connect_Retry:         60
Master_Log_File:       mysql-bin.000001
Read_Master_Log_Pos:   95849
Relay_Log_File:        Chibuzo-PC-relay-bin.000001
Relay_Log_Pos :        4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running:      Connecting
Slave_SQL_Running:     Yes
Replicate_Do_DB:       ticket
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:    95849
Relay_Log_Space:    107
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:  

Po spuštění následujícího dotazu na serveru 1 s adresou IP 192.168.1.102 jsem získal následující výsledek

SELECT user, Host FROM mysql.user WHERE Repl_slave_priv = 'Y';

+-----------+-------------------------+
| User      | Host                    |
+-----------+-------------------------+
| root      | localhost               |
| root      | 127.0.0.1               |
| root      | ::1                     |
| master    | 192.168.1.100           |
+-----------+-------------------------+

Pro server 2 s IP 192.168.1.100

 +-----------+-------------------------+
 | User      | Host                    |
 +-----------+-------------------------+
 | root      | localhost               |
 | root      | 127.0.0.1               |
 | root      | ::1                     |
 | master    | 192.168.1.102           |
 +-----------+-------------------------+

Zde je část protokolu chyb na 192.168.1.102

121230  1:23:29 [Note] Plugin 'FEDERATED' is disabled.
121230  1:23:29 InnoDB: The InnoDB memory heap is disabled
121230  1:23:29 InnoDB: Mutexes and rw_locks use Windows interlocked functions
121230  1:23:29 InnoDB: Compressed tables use zlib 1.2.3
121230  1:23:29 InnoDB: Initializing buffer pool, size = 16.0M
121230  1:23:29 InnoDB: Completed initialization of buffer pool
121230  1:23:29 InnoDB: highest supported file format is Barracuda.
121230  1:23:30 InnoDB: Waiting for the background threads to start
121230  1:23:31 InnoDB: 1.1.8 started; log sequence number 5483034
121230  1:23:31 [Note] Server hostname (bind-address): '(null)'; port: 3306
121230  1:23:31 [Note]   - '(null)' resolves to '::';
121230  1:23:31 [Note]   - '(null)' resolves to '0.0.0.0';
121230  1:23:31 [Note] Server socket created on IP: '0.0.0.0'.
121230  1:23:31 [Note] Event Scheduler: Loaded 0 events
121230  1:23:31 [Note] wampmysqld: ready for connections.
Version: '5.5.24-log'  socket: ''  port: 3306  MySQL Community Server (GPL)
121230  2:33:12 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=Chibuzo-PC-relay-bin' to avoid this problem.
121230  2:33:12 [Note] 'CHANGE MASTER TO executed'. Previous state master_Host='', master_port='3306', master_log_file='', master_log_pos='4'. New state master_Host='192.168.1.100', master_port='3306', master_log_file='mysql-bin.000001', master_log_pos='95849'.
121230  2:38:50 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000001' at position 95849, relay log '.\Chibuzo-PC-relay-bin.000001' position: 4
121230  2:39:11 [ERROR] Slave I/O: error connecting to master '[email protected]:3306' - retry-time: 60  retries: 86400, Error_code: 2003
130101  2:56:57 [Note] wampmysqld: Normal shutdown

130101  2:56:57 [Note] Event Scheduler: Purging the queue. 0 events
130101  2:56:58 [Note] Error reading relay log event: slave SQL thread was killed
130101  2:56:58 [Note] Slave I/O thread killed while connecting to master
130101  2:56:58 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000001', position 95849
130101  2:57:00 [Warning] wampmysqld: Forcing close of thread 1011  user: 'root'

SHOW binary LOGS;

Dne 192.168.1.102

 +------------------+---------------+
 | Log_name         | File_size     |
 +------------------+---------------+
 | mysql-bin.000001 |  1455         |
 | mysql-bin.000002 |   236         |
 | mysql-bin.000003 |  6417         |
 | mysql-bin.000004 | 12755         |
 +-----------+----------------------+

Dne 192.168.1.100

 +------------------+---------------+
 | Log_name         | File_size     |
 +------------------+---------------+
 | mysql-bin.000001 |  96096        |
 | mysql-bin.000002 |  91695        |
 | mysql-bin.000003 |  48773        |
 +------------------+---------------+
5
Chibuzo

V protokolu chyb:

[ERROR] Slave I/O: error connecting to master '[email protected]:3306' - retry-time: 60  retries: 86400, Error_code: 2003

Error_code: 20: Chyba (2003) Nelze se připojit k serveru MySQL na 'serveru' (10061) naznačuje, že síťové připojení bylo odmítnuto. Měli byste zkontrolovat, zda je spuštěn server MySQL, zda je povoleno síťové připojení a zda je zadaný síťový port port nakonfigurovaný na serveru.

Zkuste se připojit z jednoho serveru na druhý pomocí svého „hlavního“ účtu:

Dne 192.168.1.100:

mysql -h 192.168.1.102 -u master -p

Dne 192.168.1.102:

mysql -h 192.168.1.100 -u master -p

Zkontrolujte, zda firewall, zkuste ping a další věci týkající se síťové komunikace ...

Max.

6
Seksi DBA

Mám návrh

Na Slave spusťte následující:

STOP SLAVE;
CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=95849;
START SLAVE;
SELECT SLEEP(15);
SHOW SLAVE STATUS\G

Tím se resetují všechny protokoly relé a pokus o připojení ze souboru protokolu a pozice z chybové zprávy. Pokud dostanete Slave_IO_Running: Connecting, existují dva scénáře, které je třeba prozkoumat

SCENARIO # 1: Binlog mysql-bin.000001 dne 192.168.1.100 může být poškozen.

Můžete to ověřit spuštěním

mysqlbinlog --start-position=95849 mysql-bin.000001 > binlog_stuff.txt

Prozkoumat binlog_stuff.txt Chcete-li zjistit, zda obsahuje čisté příkazy nebo chyby z výpisu binlogu.

SCENARIO # 2: Binlog mysql-bin.000001 dne 192.168.1.100 je z novější verze MySQL

ALTERNATIVNÍ

Viděli jste, zda by pomohlo přeskočení do dalšího binlogu

STOP SLAVE;
CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=107;
START SLAVE;
SELECT SLEEP(15);
SHOW SLAVE STATUS\G

Pokud dostanete stejné chyby, můžete je vrátit zpět

STOP SLAVE;
CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=95849;
START SLAVE;
SELECT SLEEP(15);
SHOW SLAVE STATUS\G
3
RolandoMySQLDBA

Váš hlavní server někdy zablokuje všechna příchozí připojení po mnoha neúspěšných pokusech. Stává se to často po testování dalších problémů souvisejících s připojením.

Každopádně zkuste hostitele flush na vašem hlavním serveru:

mysqladmin -u root -p flush-hosts

pak restartujte slave:

service mysql restart

a zkontrolujte, zda je připojen:

tail -30f /var/log/mysql/error.log
1
pista329