mysql 互為主從復制常見問題

報錯:
1)
change master導致的:
              Last_IO_Error: error connecting to master 'repl1@IP:3306' – retry-time: 60  retries

2)    
在沒有解鎖的情況下停止slave進程:
     mysql> stop slave;
ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an active transaction

3)
change master語法錯誤,落下逗號
mysql> change master to
    -> master_host='IP'
    -> master_user='USER',
    -> master_password='PASSWD',
    -> master_log_file='mysql-bin.000002',
    -> master_log_pos=106;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master_user='USER',
master_password='PASSWD',
master_log_file='mysql-bin.000002' at line 3

 

4)
在沒有停止slave進程的情況下change master
mysql> change master to master_host=‘IP', master_user='USER', master_password='PASSWD', master_log_file='mysql-bin.000001',master_log_pos=106;
ERROR 1198 (HY000): This operation cannot be performed with a running slave; run STOP SLAVE first

 

5)
A B的server-id相同:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids;
these ids must be different for replication to work (or the –replicate-same-server-id option must be used on
slave but this does not always make sense; please check the manual before using it).
查看server-id
mysql> show variables like 'server_id';
手動修改server-id
mysql> set global server_id=2; #此處的數值和my.cnf裡設置的一樣就行
mysql> slave start;

6)change master之後,查看slave的狀態,發現slave_IO_running 為NO
需要註意的是,做完上述操作之後最後重啟mysql進程

 

摘自:ANLJF的專欄

發佈留言