Heim  >  Artikel  >  Datenbank  >  MySQL 1236错误解决方法_MySQL

MySQL 1236错误解决方法_MySQL

WBOY
WBOYOriginal
2016-06-01 13:36:011793Durchsuche

bitsCN.com

MySQL 1236错误解决方法

 

由于主服务器异外重启, 导致从报错, 错误如下:

show slave status错误:

mysql> show slave status/G

Master_Log_File: mysql-bin.000288

Read_Master_Log_Pos: 627806304

Relay_Log_File: mysql-relay-bin.000990

Relay_Log_Pos: 627806457

Relay_Master_Log_File: mysql-bin.000288

Slave_IO_Running: No

Slave_SQL_Running: Yes

Exec_Master_Log_Pos: 627806304

Relay_Log_Space: 627806663

 

......

Last_IO_Error: Got fatal error 1236 from master when  reading data from binary log:

'Client requested master to start  replication from impossible position'

mysql错误日志:

 

tail /data/mysql/mysql-error.log

111010 17:35:49 [ERROR] Error reading packet from server: Client requested master

 to start replication from impossible position ( server_errno=1236)

111010 17:35:49 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data

from binary log: 'Client requested master to start replication from impossible

position', Error_code: 1236

111010 17:35:49 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000288',

position 627806304

 

 

 

 

[root@db1 ~]# mysqlbinlog /data/mysql/binlog/mysql-bin.000288 > mysql-bin.000288.sql

 

less mysql-bin.000288.sql

看最后一部分

# at 627625495

#111010 16:35:46 server id 1 end_log_pos 627625631 Query thread_id=45613333

exec_time=32758 error_code=0

SET TIMESTAMP=1318289746/*!*/;

delete from freeshipping_bef_update where part='AR-4006WLM' and code=''

/*!*/;

# at 627625631

#111010 16:35:46 server id 1 end_log_pos 627625751 Query thread_id=45613333

exec_time=32758 error_code=0

SET TIMESTAMP=1318289746/*!*/;

delete from shippingFee_special where part='AR-4006WLM'

/*!*/;

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

找到最接近错误标记627655136的一个position是627625631.

 

再回到slave机器上change master, 将postion指向这个位置.

 

mysql> stop slave;

Query OK, 0 rows affected (0.00 sec)

 

mysql> change master to master_log_file='mysql-bin.000288',master_log_pos=627625631;

Query OK, 0 rows affected (0.06 sec)

 

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

再次查看

 

mysql> show slave status/G

*************************** 1. row ***************************

Slave_IO_State: Queueing master event to the relay log

Master_Host: 192.168.21.105

Master_User: rep

Master_Port: 3306

Connect_Retry: 10

Master_Log_File: mysql-bin.000289

Read_Master_Log_Pos: 25433767

Relay_Log_File: mysql-relay-bin.000003

Relay_Log_Pos: 630

Relay_Master_Log_File: mysql-bin.000289

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

主从同步正常了, 同样的方法修复其它slave机器.

 

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn