环境:A主机( 192.168.128.131 ) + B主机( 192.168.128.132 )
目的:实现MySQL数据库备份( AB复制 )
问题描述:
MariaDB [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Connecting to master Master_Host: 192.168.128.131 Master_User: userb Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master1.000001 Read_Master_Log_Pos: 950 Relay_Log_File: localhost-relay-bin.000001 Relay_Log_Pos: 4 Relay_Master_Log_File: master1.000001 Slave_IO_Running: Connecting # 出现错误,IO线程处于正在连接状态 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: 950 Relay_Log_Space: 256 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: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 2003 Last_IO_Error: error connecting to master 'userb@192.168.128.131:3306' - retry-time: 60 maximum-retries: 86400 message: Can't connect to MySQL server on '192.168.128.131' (113 "No route to host") Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 0 Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: No Gtid_IO_Pos: Replicate_Do_Domain_Ids: Replicate_Ignore_Domain_Ids: Parallel_Mode: conservative SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it Slave_DDL_Groups: 0 Slave_Non_Transactional_Groups: 0 Slave_Transactional_Groups: 0
解决过程:
根据Last_IO_Error的报错信息 message: Can't connect to MySQL server on '192.168.128.131' (113 "No route to host") 发现B主机不能连接A主机,然后尝试是否能Ping通A主机
[root@localhost ~]# ping 192.168.128.131 PING 192.168.128.131 (192.168.128.131) 56(84) bytes of data. 64 bytes from 192.168.128.131: icmp_seq=1 ttl=64 time=0.384 ms 64 bytes from 192.168.128.131: icmp_seq=2 ttl=64 time=0.267 ms 64 bytes from 192.168.128.131: icmp_seq=3 ttl=64 time=0.412 ms 64 bytes from 192.168.128.131: icmp_seq=4 ttl=64 time=0.245 ms 64 bytes from 192.168.128.131: icmp_seq=5 ttl=64 time=0.259 ms ^C --- 192.168.128.131 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 0.245/0.313/0.412/0.071 ms
B主机能够Ping通A主机,猜测可能是防火墙的问题,于是关闭防火墙:
[root@localhost ~]# iptables -F # 关闭防火墙 [root@localhost ~]# setenforce 0 # 关闭SELinux
再次重新执行B主机的从配置:
MariaDB [(none)]> stop slave; Query OK, 0 rows affected (0.002 sec) MariaDB [(none)]> change master to -> master_host='192.168.128.131', -> master_user='userb', -> master_password='root', -> master_log_file='master1.000001', -> master_log_pos=1845; Query OK, 0 rows affected (0.005 sec) MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.003 sec)
查看B主机的slave状态:
MariaDB [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.128.131 Master_User: userb Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master1.000001 Read_Master_Log_Pos: 1845 Relay_Log_File: localhost-relay-bin.000002 Relay_Log_Pos: 553 Relay_Master_Log_File: master1.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: 1845 Relay_Log_Space: 866 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: Replicate_Ignore_Server_Ids: Master_Server_Id: 131 Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: No Gtid_IO_Pos: Replicate_Do_Domain_Ids: Replicate_Ignore_Domain_Ids: Parallel_Mode: conservative SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it Slave_DDL_Groups: 0 Slave_Non_Transactional_Groups: 0 Slave_Transactional_Groups: 2