1. 程式人生 > >mysql主從備份Slave_IO_Running:No的解決方法

mysql主從備份Slave_IO_Running:No的解決方法

情況一:
在備機的mysql上執行:show slave status \G
發現Slave_SQL_Running: No
      Last_Errno: 1146
      Last_Error: Error 'Table 'opaq_151.vehicle_new' doesn't exist' on query. Default database: 'opaq_151'. Query: 'delete from vehicle_new where ID_>1700001960';
分析SQL語句發現,slave機上沒有vehicle_new 表,所以報錯。
這個時候想恢復的話,只要
stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
就可以了

set GLOBAL SQL_SLAVE_SKIP_COUNTER=1的意思是:
 跳過某個無法執行的命令

1set global sql_slave_skip_counter=N中的N是指跳過Nevent

   2、最好記的是N被設定為1時,效果跳過下一個事務

   3、跳過第Nevent後,位置若剛好落在一個事務內部,則會跳過這整個事務

   4、一個insert/update/delete不一定只對應一個event,由引擎和日誌格式決定


情況二: 

早晨機房意外斷電,導致了發現mysql從伺服器同步異常。使用以前碰到的Slave_SQL_Running為No的解決辦法無效,仍然無法同步。 

檢視一下狀態show slave status 
Master_Log_File: mysqlmaster.000079 
Read_Master_Log_Pos: 183913228 
Relay_Log_File: hx-relay-bin.002934 
Relay_Log_Pos: 183913371 
Relay_Master_Log_File: mysqlmaster.000079 
Slave_IO_Running: No 
Slave_SQL_Running: Yes 


主伺服器show master status\G 
File: mysqlmaster.000080 
Position: 13818288 
Binlog_Do_DB: 
Binlog_Ignore_DB: mysql,test 


mysql錯誤日誌: 
100512 9:13:17 [Note] Slave SQL thread initialized, starting replication in log 'mysqlmaster.000079' at position 183913228, relay log './hx-relay-bin.002934' position: 183913371 
100512 9:13:17 [Note] Slave I/O thread: connected to master '
[email protected]
:3306', replication started in log 'mysqlmaster.000079' at position 183913228 
100512 9:13:17 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236) 
100512 9:13:17 [ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log 
100512 9:13:17 [Note] Slave I/O thread exiting, read up to log 'mysqlmaster.000079', position 183913228 


這次是Slave_IO_Running為No,從日誌上來看,伺服器讀mysqlmaster.000079這個Log的183913228這個位置時發生錯誤,這個位置不存在,於是無法同步。 


檢視一下這個Log的最後幾行: 
/*!40019 SET @@session.max_insert_delayed_threads=0*/; 
/*!50003 SET @
[email protected]
@COMPLETION_TYPE,COMPLETION_TYPE=0*/; 
# at 4 
#100511 9:35:15 server id 1 end_log_pos 98 Start: binlog v 4, server v 5.0.27-standard-log created 100511 9:35:15 
# Warning: this binlog was not closed properly. Most probably mysqld crashed writing it. 


嘗試從損壞之前的位置開始 
SLAVE STOP; 
CHANGE MASTER TO MASTER_LOG_FILE='mysqlcncnmaster.000079', MASTER_LOG_POS=183913220; 
SLAVE START; 
無效! 
只好從新的日誌開始 
SLAVE STOP; 
CHANGE MASTER TO MASTER_LOG_FILE='mysqlcncnmaster.000080', MASTER_LOG_POS=0; 
SLAVE START; 
此時Slave_IO_Running恢復為Yes,同步進行了!觀察了會兒,沒有任何出錯跡象,問題解決。 


另外,出現Slave_IO_Running:NO還有一個原因是slave上沒有許可權讀master上的資料。 


詳細出處參考:http://www.jb51.net/article/27220.htm
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script> 閱讀(95) | 評論(0) | 轉發(0) | 給主人留下些什麼吧!~~ 評論熱議

相關推薦

mysql主從備份Slave_IO_Running:No解決方法

情況一: 在備機的mysql上執行:show slave status \G 發現Slave_SQL_Running: No       Last_Errno: 1146       Last_Error: Error 'Table 'opaq_151.vehicle_new

連接Mysql提示Can’t connect to local MySQL server through socket的解決方法

127.0.0.1 方式 mic div conn 三種 問題 ati my.cnf 轉:http://aiezu.com/article/mysql_cant_connect_through_socket.html 有時候,當我們使用“mysql”、“mysqladmin

遠程桌面連接MySQL遇到的問題及解決方法總結

許可授權 fire ble 連接 配置 image iptable 問題 分享 背景提要:想用Delphi做一個可以連接Mysql數據庫的桌面應用程序。其中遇到了一些讓自己很苦惱的問題。因為自己是新手,Delphi用的不熟,FireDAC這個連接數據庫裏控件更是沒有接觸

MySQL中的錯誤及解決方法

chan col pan sql命令 sharp arp 自己的 class word 1. 修改密碼提示 ERROR 1054 (42S22): Unknown column ‘‘password‘‘ in ‘‘field list‘‘ 錯誤原因:mysql數據庫下已

windows下mysql忘記root密碼的解決方法

ogr cmd pwd ati 賬號 lin 新建 use title 方法一: 1、在DOS窗口下輸入net stop mysql5 或 net stop mysql 2、開一個DOS窗口,這個需要切換到mysql的bin目錄。 一般在bin目錄裏面創建一個批處理1

mysql 使用shell時出現 ERROR 2006 (HY000): MySQL server has gone away 解決方法

pos connect 技術分享 mysql table try 發現 com span ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Con

mysql主從備份及常見問題處理

top 存在 是否 table read 應用 and 常見問題 png 1.mysql主從備份基本原理 mysql支持單向、異步復制,復制過程中一個服務器充當主服務器,而一個或多個其它服務器充當從服務器。mysql復制基於主服務器在二進制日誌中跟蹤所有對數據庫的更

啟動mysql時顯示:/tmp/mysql.sock 不存在的解決方法

blog col 賬號 一個 nbsp 解決 直接 sock div 簡單直接的方法: 自己建立一個mysql.sock文件,放到mysql目錄下,然後使用軟鏈接指向到tmp文件夾下 註意mysql賬號有讀寫/mysql/mysql.sock的權限 ln -s

Mysql DBA 高級運維學習筆記-MySQL主從復制故障解決

解決 .cn 行修改 大數據庫 soc 內存 回滾 root 錯誤號 1.MySQL從庫數據沖突導致同步停止 Show slave status報錯且show slave status\G Slave_IO_Running: Yes Slave_SQL_Running: N

企業 - MySQL主從備份

mysql 主從備份一、mysql主從備份原理一、雙機熱備的概念簡單說一下,就是要保持兩個數據庫的狀態自動同步。對任何一個數據庫的操作都自動應用到另外一個數據庫,始終保持兩個數據庫中的數據一致。 這樣做有如下幾點好處:1. 可以做災備,其中一個壞了可以切換到另一個。2. 可以做負載均衡,可以將請求分攤到其中任

mysql主從不同步如何解決

mysqlSlave_IO_Running: Yes Slave_SQL_Running: No一、數據相差不大直接跳過一步stop slave;set global sql_slave_skip_counter =1; start slave;二、數據相差很大,需要重新做主從同步1,先鎖表mysql>

出現”/var/lib/mysql/mysql.sock“不存在的解決方法

解決辦法如下 文件 socket pan 創建 pass 修改 ip地址 .so 這種情況大多數是因為你的mysql是使用rpm方式安裝的,它會自動尋找 /var/lib/mysql/mysql.sock 這個文件,通過unix socket登錄mysql。常見解決辦法如下

win10+vs2017+asp.net MVC5+EF6+mysql 閃退問題,解決方法

mvc connect mysql data -c 選中 nec 中項 安裝 1.安裝 mysql-for-visualstudio-2.0.5.msi 2.安裝 mysql-connector-net-6.10.7.msi 3.在VS2017 右鍵選中項目,管理NuG

MySQL主從備份配置實例

reat 變化 出現問題 二進制日誌 my.cnf配置 counter 文件名 alter 特定 場景: 1、主服務器192.168.0.225、從服務器192.168.0.226。其中,主服務器上已有數據。 2、主從服務器上的mysql版本及安裝配置相同。 一

mysql導入太慢解決方法

cts related tween cal mit orm CI sch multi 半調子數據科學家又要折騰數據,拿到數據一看,3.6G的zip文件,解壓看看,臥槽12個G的sql文件。好吧,又要折騰sql數據了。第一件事,肯定是搭一個數據庫,導入數據咯。 折騰過sql導

8.0.11版本Mysql遇到MySQL 服務無法啟動的解決方法

p s 解決方法 details eba 引號 iss 位數 -- 修改密碼 轉:https://blog.csdn.net/iyayaqiqi/article/details/80536110 系統環境:win10(1803),64位 MySQL版本:8.0.11免安

***在Linux環境下mysql的root密碼忘記解決方法(三種)-推薦第三種

href containe 完全 mys init.d 操作 root ubunt upd MySQL密碼的恢復方法之一 1.首先確認服務器出於安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。 因為在重新設置MySQL的root密碼的期間,MySQL數據庫完全出於沒

Linux環境下mysql的root密碼忘記解決方法

l數據庫 狀態 con ini pda inux star 數據 .cn 1.首先確認服務器出於安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。 因為在重新設置MySQL的root密碼的期間,MySQL數據庫完全出於沒有密碼保護的 狀態下,其他的用戶也可以任意地登錄

忘記MySQL的root密碼的解決方法

步驟 span ted 通過 run commands cut ive my.cnf 經常會有朋友或者同事問起,MySQL 的 root 密碼忘了,不知道改怎麽辦。 其實解決方法很簡單,下面是詳細的操作步驟。 (1)修改配置文件my.cnf,在配置文件[mysql

使用hibernate自動建立Mysql表失敗原因及解決方法

原因: hibernate裡的dialect和Mysql的版本不匹配,SQL語句裡的type=“****”使用在MySQL5.0之前,5.0之後就要是使用engine=“****”。 解決: 修改hibernate.cfg.xml檔案 MySql5.0之前的配置 <property