【问题描述
】:
在master 停机维护启动服务之后,slave的Slave_IO_Running状态被置为NO
Slave_SQL_Running为Yes,猜测应该是master的锅
继续检查网络,权限等问题之后仍然为不可用
也尝试重新
change master to ...., ...., ....,
master_log_file = 'master-bin.034555',
master_log_pos = 98;
依旧不可用
查看slave的errorlog,发现有报错,报错信息十分明了:
并且抛出: Got fatal error 1236 的错误
检查配置文件发现#server-id = xxx 被注释
【解决方案 】:
由于server_id为“Dynamic Variable”
故到master中手动执行
最后在将配置文件中添加
server-id=3028
同样,某些时候在start slave时报错“The server is not configured as slave”,
同样也很有可能是server-id的缘故,只需要手动在主和从库上执行:
SET GLOBAL server_id = xxx,并保证两台server-id不一样即可,最后写入my.cnf中。
作者微信公众号(持续更新)
在master 停机维护启动服务之后,slave的Slave_IO_Running状态被置为NO
Slave_SQL_Running为Yes,猜测应该是master的锅
继续检查网络,权限等问题之后仍然为不可用
也尝试重新
change master to ...., ...., ....,
master_log_file = 'master-bin.034555',
master_log_pos = 98;
依旧不可用
- mysql> SHOW SLAVE STATUS\G
- *************************** 1. row ***************************
- Slave_IO_State:
- Master_Host: *.*.*.*
- Master_User: repl
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: master-bin.034555
- Read_Master_Log_Pos: 98
- Relay_Log_File: mysqld-relay-bin.000001
- Relay_Log_Pos: 98
- Relay_Master_Log_File: master-bin.034555
- Slave_IO_Running: No
- 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: 98
- Relay_Log_Space: 98
- 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
查看slave的errorlog,发现有报错,报错信息十分明了:
并且抛出: Got fatal error 1236 的错误
- 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中。
作者微信公众号(持续更新)
![](http://img.blog.itpub.net/blog/attachment/201805/23/29773961_1527062856X0Lm.png?x-oss-process=style/bb)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29773961/viewspace-2061572/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29773961/viewspace-2061572/