sql文件如果是完整的話, 去MYSQL命令行 use 庫(kù)名; source sql文件絕對(duì)路徑,這樣試試. 注意,這樣是執(zhí)行整個(gè)SQL文件的,如果你只是要恢復(fù)某一部分的話,估計(jì)你要打開SQL文件,把那部分復(fù)制出來(lái)重新存放一個(gè)文件
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),冠縣企業(yè)網(wǎng)站建設(shè),冠縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,冠縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,冠縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
mysql主從同步常見異常及恢復(fù)方法
1. 一般的異常只需要跳過(guò)一步即可恢復(fù)
slave stop;
SET GLOBAL sql_slave_skip_counter = 1;
slave start;
2.斷電導(dǎo)致主從不能同步時(shí),通主庫(kù)的最后一個(gè)bin-log日志進(jìn)行恢復(fù)
在主庫(kù)服務(wù)器上,mysqlbinlog mysql-bin.xxxx binxxxx.txt
tail -n 100000 binxxxx.txt tail-binxxxx.txt
vim tail-binxxxx.txt 打開tail-binxxxx.txt文件找到最后一個(gè)postion值
然后在從庫(kù)上,change host to 相應(yīng)正確的值
slave stop;
change master to master_host='ip', master_user='username', master_password='password', master_log_file='mysql-bin.xxxx', master_log_pos=xxxx;
slave start;
show slave status\G;
3.主鍵沖突、表已存在等錯(cuò)誤代碼如1062,1032,1060等,可以在mysql主配置文件指定
略過(guò)此類異常并繼續(xù)下條sql同步,這樣也可以避免很多主從同步的異常中斷
[mysqld]
slave-skip-errors = 1062,1032,1060
第一種:在master上刪除一條記錄,而slave上找不到。
Last_SQL_Error: Could not execute Delete_rows event on table hcy.t1;
Can't find record in 't1',
Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND;
the event's master log mysql-bin.000006, end_log_pos 254
第二種:主鍵重復(fù)。在slave已經(jīng)有該記錄,又在master上插入了同一條記錄。
Last_SQL_Error: Could not execute Write_rows event on table hcy.t1;
Duplicate entry '2' for key 'PRIMARY',
Error_code: 1062;
handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.000006, end_log_pos 924
第三種:在master上更新一條記錄,而slave上找不到,丟失了數(shù)據(jù)。
Last_SQL_Error: Could not execute Update_rows event on table hcy.t1;
Can't find record in 't1',
Error_code: 1032;
handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000010, end_log_pos 263
異步半同步區(qū)別
完成了 prepare 階段,寫入 binlog 之前斷電這種情況下, mysql 重新啟動(dòng)時(shí),會(huì)從 redolog 中讀出未 flush 到磁盤中的 page —— buffer pool 。然后從 redolog 重建這些內(nèi)存中的 page ,以恢復(fù)斷電之前內(nèi)存的狀態(tài)。之后,mysql檢測(cè)到該事務(wù)并未提交,因此主動(dòng)執(zhí)行事務(wù)的回滾操作。
修復(fù) mysql 數(shù)據(jù)庫(kù)電源故障造成的數(shù)據(jù)損壞在使用 mysql 數(shù)據(jù)庫(kù)時(shí),我們都遇到過(guò)電源故障造成的數(shù)據(jù)庫(kù)損壞,我們都知道,電源故障或異常關(guān)機(jī)是 mysql 數(shù)據(jù)庫(kù)錯(cuò)誤最常見的原因,如何恢復(fù) mysql 數(shù)據(jù)庫(kù)是每個(gè)人都頭疼的問題。有什么辦法可以幫你恢復(fù)破損的 mysql 數(shù)據(jù)庫(kù)嗎?當(dāng)用戶由于電源故障而丟失或損壞 mysql 數(shù)據(jù)庫(kù)時(shí),如果他們可以進(jìn)入 mysql 軟件但是被錯(cuò)誤提示,用戶可以使用“系統(tǒng)維護(hù)”作為“數(shù)據(jù)庫(kù)壓縮修復(fù)” ,壓縮數(shù)據(jù)庫(kù)(一些軟件在“系統(tǒng)設(shè)置”、“系統(tǒng)維護(hù)”、“數(shù)據(jù)庫(kù)備份和恢復(fù)”) ,這種方法只適用于數(shù)據(jù)庫(kù)故障修復(fù)的一小部分,功能不高。在 web 上 mysql 數(shù)據(jù)庫(kù)恢復(fù)有兩種推薦的方法,一種是使用 sql 語(yǔ)句,如 mysql 的 check table 和 repair table (與 php 的最佳組合) ,另一種是使用 mysql 提供的多個(gè) myisamchk、 isamchk 數(shù)據(jù)檢測(cè)和恢復(fù)工具(與 php 的最佳組合)。許多用戶認(rèn)為,這兩種方法都很復(fù)雜,不適合大多數(shù)用戶。此外,這兩種方法都不能有效地恢復(fù) mysql 數(shù)據(jù)庫(kù),還可能導(dǎo)致數(shù)據(jù)庫(kù)被進(jìn)一步破壞,造成不可挽回的損失。由于上述原因,不推薦使用兩種 mysql 數(shù)據(jù)庫(kù)恢復(fù)方法。數(shù)據(jù)庫(kù)以下列方式損壞: 1。嚴(yán)重腐敗2。輕微腐敗3。有些表已損壞,有些表的記錄已部分損壞
簡(jiǎn)單情況下:進(jìn)入原來(lái)mysql安裝路徑下的data文件夾下,找到相應(yīng)的庫(kù)和ibdata1,進(jìn)行copy,就可回復(fù)原來(lái)的數(shù)據(jù)。
復(fù)雜情況下:
從另一臺(tái)機(jī)上把MySQL數(shù)據(jù)庫(kù)的mysql文件夾拷貝到本地機(jī)上,目的是恢復(fù)本地機(jī)對(duì)數(shù)據(jù)的訪問和操作。經(jīng)過(guò)如下幾種情況的操作。
1. 在本地重裝MySQL(安裝目錄D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夾拷貝至D:\Program Files\MySQL\MySQL Server 5.0\。結(jié)果,失敗:數(shù)據(jù)庫(kù)連接錯(cuò)誤。
2. 卸載后重裝MySQL,將D:\Program Files\MySQL\MySQL Server 5.0\下的數(shù)據(jù)備份,只把mysql\data文件夾全部?jī)?nèi)容拷貝到D:\Program Files\MySQL\MySQL Server 5.0\data下。結(jié)果,失?。簲?shù)據(jù)庫(kù)連接錯(cuò)誤。將備份的數(shù)據(jù)還完覆蓋。結(jié)果,失敗,還是連接不上數(shù)據(jù)庫(kù)。
3. 卸載后重裝MySQL,將mysql\data文件夾里的cf1,last文件夾(這兩個(gè)是原來(lái)MySQL里的數(shù)據(jù)庫(kù))拷貝進(jìn)D:\Program Files\MySQL\MySQL Server 5.0\data。連接成功,在Navicat for MySQL里看到數(shù)據(jù)庫(kù)cf1和last,但是不能訪問,因?yàn)閿?shù)據(jù)全為零。明白了原來(lái)data里以數(shù)據(jù)庫(kù)命名的文件存儲(chǔ)的是數(shù)據(jù)庫(kù)的表結(jié)構(gòu),不是元數(shù)據(jù)。下一步,把data文件夾里的ibdata1文件(3.4G大,明顯存儲(chǔ)了元數(shù)據(jù))拷貝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原來(lái)的ibdata1文件。重啟電腦,打開Navicat for MySQL,連接成功,數(shù)據(jù)可以訪問操作。
至此,操作終于成功。其實(shí)當(dāng)初在那臺(tái)機(jī)上把數(shù)據(jù)導(dǎo)出來(lái),而不是現(xiàn)在直接把文件夾mysql復(fù)制過(guò)來(lái)會(huì)更容易恢復(fù)。但那臺(tái)機(jī)已經(jīng)重裝了系統(tǒng),也就是說(shuō)MySQL失效了。
標(biāo)題名稱:mysql斷電怎么恢復(fù) 數(shù)據(jù)庫(kù)斷電恢復(fù)
文章路徑:http://jinyejixie.com/article2/hejsic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、外貿(mào)建站、做網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)