【问题描述】:
在master停机维护启动服务之后,slave的Slave_IO_Running状态被置为NO
Slave_SQL_Running为Yes,猜测应该是master的锅
继续检查网络,权限等问题之后仍然为不可用
也尝试重新
change master to ...., ...., ....,
master_log_file = 'master-bin.034555',
master_log_pos = 98;
依旧不可用
	
		- 
			160322  9:42:51 [Note] Slave SQL thread initialized, starting replication in log 'master-bin.034555' at position 98, relay log './mysqld-relay-bin.0000 
		
 
		- 
			01' position: 4 
		
 
		- 
			160322  9:43:01 [Note] Slave I/O thread: connected to master 'repl@*.*.*.*:3306',  replication started in log 'master-bin.034555' at position 98 
		
 
		- 
			160322  9:43:01 [ERROR] Error reading packet from server: Misconfigured master - server id was not set ( server_errno=1236) 
		
 
		- 
			160322  9:43:01 [ERROR] Got fatal error 1236: 'Misconfigured master - server id was not set' from master when reading data from binary log 
		
 
		- 
			160322  9:43:01 [Note] Slave I/O thread exiting, read up to log 'master-bin.034555', position 98 
		
 
		- 
			160322  9:43:07 [Note] Error reading relay log event: slave SQL thread was killed 
		
 
	
 
检查配置文件发现#server-id = xxx 被注释
【解决方案】:
由于server_id为“Dynamic Variable”
故到master中手动执行
	
		- 
			mysql> SET GLOBAL server_id=3028;
 
		 
		- 
			Query OK, 0 rows affected (0.00 sec) 
		
 
	
 
最后在将配置文件中添加
server-id=3028
	在slave上检查:
	
		
			- 
				mysql> SHOW SLAVE STATUS\G
			 
			- 
				*************************** 1. row ***************************
			 
			- 
				             Slave_IO_State: Waiting for master to send event
			 
			- 
				                Master_Host: 192.168.30.28
			 
			- 
				                Master_User: repl
			 
			- 
				                Master_Port: 3306
			 
			- 
				              Connect_Retry: 60
			 
			- 
				            Master_Log_File: master-bin.034556
			 
			- 
				        Read_Master_Log_Pos: 59312658
			 
			- 
				             Relay_Log_File: mysqld-relay-bin.000002
			 
			- 
				              Relay_Log_Pos: 64698308
			 
			- 
				      Relay_Master_Log_File: master-bin.034555
			 
			- 
				           Slave_IO_Running: Yes
			 
			- 
				          Slave_SQL_Running: Yes
			 
			- 
				                      ………………………… 
			
 
			- 
				      Seconds_Behind_Master: 10071
			 
			- 
				1 row in set (0.00 sec) 
			
 
		
	 
解决。
同样,某些时候在start slave时报错“The server is not configured as slave”,
同样也很有可能是server-id的缘故,只需要手动在主和从库上执行:
SET GLOBAL server_id = xxx,并保证两台server-id不一样即可,最后写入my.cnf中。
作者微信公众号(持续更新)
