mysql主从1594错误_3分钟解决MySQL主从1594错误
3分鐘解決MySQL主從1594錯(cuò)誤簡(jiǎn)介
Part1:寫(xiě)在最前
1594這個(gè)錯(cuò)誤看起來(lái)挺嚴(yán)重的,會(huì)提示你binlog文件或者Relay log損壞了,例如binary?log?is?corrupted、relay log is corrupted之類的看起來(lái)很嚇人是吧,多數(shù)是由于掉電引發(fā)的,這也說(shuō)明了機(jī)房配備UPS的重要性。本文來(lái)自真實(shí)生產(chǎn)案例,感謝網(wǎng)友加內(nèi)特提供,本人加以故障重現(xiàn)校驗(yàn)。一起來(lái)看下如何解決吧。
Part2:完整報(bào)錯(cuò)信息mysql>?show?slave?statusG
***************************?1.?row?***************************
Slave_IO_State:?Waiting?for?master?to?send?event
Master_Host:?192.168.1.250
Master_User:?mysync
Master_Port:?3306
Connect_Retry:?60
Master_Log_File:?mysql-bin.000006
Read_Master_Log_Pos:?2091061
Relay_Log_File:?mysql-relay-bin.000002
Relay_Log_Pos:?1675027
Relay_Master_Log_File:?mysql-bin.000006
Slave_IO_Running:?Yes
Slave_SQL_Running:?No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:?1594
Last_Error:?Relay?log?read?failure:?Could?not?parse?relay?log?event?entry.?The?possible?reasons?are:?the?master's?binary?log?is?corrupted?(you?can?check?this?by?running?'mysqlbinlog'?on?the?binary?log),?the?slave's?relay?log?is?corrupted?(you?can?check?this?by?running?'mysqlbinlog'?on?the?relay?log),?a?network?problem,?or?a?bug?in?the?master's?or?slave's?MySQL?code.?If?you?want?to?check?the?master's?binary?log?or?slave's?relay?log,?you?will?be?able?to?know?their?names?by?issuing?'SHOW?SLAVE?STATUS'?on?this?slave.
Skip_Counter:?0
Exec_Master_Log_Pos:?1675875
Relay_Log_Space:?2093990
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:?0
Last_IO_Error:
Last_SQL_Errno:?1594
Last_SQL_Error:?Relay?log?read?failure:?Could?not?parse?relay?log?event?entry.?The?possible?reasons?are:?the?master's?binary?log?is?corrupted?(you?can?check?this?by?running?'mysqlbinlog'?on?the?binary?log),?the?slave's?relay?log?is?corrupted?(you?can?check?this?by?running?'mysqlbinlog'?on?the?relay?log),?a?network?problem,?or?a?bug?in?the?master's?or?slave's?MySQL?code.?If?you?want?to?check?the?master's?binary?log?or?slave's?relay?log,?you?will?be?able?to?know?their?names?by?issuing?'SHOW?SLAVE?STATUS'?on?this?slave.
Replicate_Ignore_Server_Ids:
Master_Server_Id:?1250
Master_UUID:?975d0e4f-bb5d-11e6-98a3-000c29c6361d
Master_Info_File:?/data/mysql/master.info
SQL_Delay:?0
SQL_Remaining_Delay:?NULL
Slave_SQL_Running_State:
Master_Retry_Count:?86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:?161205?21:57:01
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:?0
1?row?in?set?(0.00?sec)
解決辦法
Part1:停止從庫(kù)mysql>?stop?slave;
Query?OK,?0?rows?affected?(0.00?sec)
mysql>?reset?slave?all;
Query?OK,?0?rows?affected?(0.25?sec)
mysql>??CHANGE?MASTER?TO?MASTER_HOST='192.168.1.250',MASTER_USER='mysync',MASTER_PASSWORD='MANAGER',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=1675875;
Query?OK,?0?rows?affected,?2?warnings?(0.01?sec)
上述的POS號(hào)就是Exec_Master_Log_Pos: 1675875
Part2:起庫(kù)校驗(yàn)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)mysql>?show?slave?statusG
***************************?1.?row?***************************
Slave_IO_State:?Waiting?for?master?to?send?event
Master_Host:?192.168.1.250
Master_User:?mysync
Master_Port:?3306
Connect_Retry:?60
Master_Log_File:?mysql-bin.000006
Read_Master_Log_Pos:?2091061
Relay_Log_File:?mysql-relay-bin.000002
Relay_Log_Pos:?354960
Relay_Master_Log_File:?mysql-bin.000006
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:?2030552
Relay_Log_Space:?415642
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:?796
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:?1250
Master_UUID:?975d0e4f-bb5d-11e6-98a3-000c29c6361d
Master_Info_File:?/data/mysql/master.info
SQL_Delay:?0
SQL_Remaining_Delay:?NULL
Slave_SQL_Running_State:?Reading?event?from?the?relay?log
Master_Retry_Count:?86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:?0
1?row?in?set?(0.00?sec)
可以看到從庫(kù)已經(jīng)開(kāi)始在追主庫(kù)了。
Part3:checksum校驗(yàn)mysql>?checksum?table?helei;
+-------------+------------+
|?Table???????|?Checksum???|
+-------------+------------+
|?helei.helei?|?2698376487?|
+-------------+------------+
1?row?in?set?(0.00?sec)
mysql>?checksum?table?helei;
+-------------+-----------+
|?Table???????|?Checksum??|
+-------------+-----------+
|?helei.helei?|?416306435?|
+-------------+-----------+
1?row?in?set?(0.00?sec)
可以看到這里兩表已經(jīng)不一致了,雖然從庫(kù)完成了同步。但需要重進(jìn)對(duì)主從進(jìn)行校驗(yàn)了。
主從校驗(yàn)的方法不是本文重點(diǎn),需要的可移步
http://suifu.blog.51cto.com/9167728/1836551
[root@HE1?~]#?mysql?-uroot?-p
Enter?password:
Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?g.
Your?MySQL?connection?id?is?9
Server?version:?5.6.25-log?MySQL?Community?Server?(GPL)
Copyright?(c)?2000,?2015,?Oracle?and/or?its?affiliates.?All?rights?reserved.
Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its
affiliates.?Other?names?may?be?trademarks?of?their?respective
owners.
Type?'help;'?or?'h'?for?help.?Type?'c'?to?clear?the?current?input?statement.
mysql>?select?@@hostname;
+------------+
|?@@hostname?|
+------------+
|?HE1????????|
+------------+
1?row?in?set?(0.00?sec)
mysql>?select?count(*)?from?helei.helei;
+----------+
|?count(*)?|
+----------+
|?????4738?|
+----------+
1?row?in?set?(0.00?sec)
mysql>
[root@HE3?~]#?mysql?-uroot?-p
Enter?password:
Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?g.
Your?MySQL?connection?id?is?12
Server?version:?5.6.25-log?MySQL?Community?Server?(GPL)
Copyright?(c)?2000,?2015,?Oracle?and/or?its?affiliates.?All?rights?reserved.
Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its
affiliates.?Other?names?may?be?trademarks?of?their?respective
owners.
Type?'help;'?or?'h'?for?help.?Type?'c'?to?clear?the?current?input?statement.
mysql>?select?@@hostname;
+------------+
|?@@hostname?|
+------------+
|?HE3????????|
+------------+
1?row?in?set?(0.00?sec)
mysql>?select?count(*)?from?helei.helei;
+----------+
|?count(*)?|
+----------+
|?????5000?|
+----------+
1?row?in?set?(0.00?sec)
mysql>
這里能看到兩表的行數(shù)也已經(jīng)不一致了。
——總結(jié)——
MySQL1594通常由于掉電引起,雖然報(bào)錯(cuò)內(nèi)容看起來(lái)挺嚇人的,但只要手穩(wěn)心不慌,可以很快解決。由于筆者的水平有限,編寫(xiě)時(shí)間也很倉(cāng)促,文中難免會(huì)出現(xiàn)一些錯(cuò)誤或者不準(zhǔn)確的地方,不妥之處懇請(qǐng)讀者批評(píng)指正。
總結(jié)
以上是生活随笔為你收集整理的mysql主从1594错误_3分钟解决MySQL主从1594错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: accsess转成mysql语句_acc
- 下一篇: sqlserver2008导出mysql