打開mysql的bin log功能:
10多年的雞西網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整雞西建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“雞西網(wǎng)站設(shè)計”,“雞西網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實(shí)執(zhí)行。
對于mysql也是支持增量備份,但要打開mysql的bin log功能。
我們修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安裝目錄/my.ini
我們在[mysqld]下面加上log-bin一行代碼,如下面。
[mysqld]
log-bin=mysql-bin
復(fù)制代碼
加完后重起mysql即可。
某客戶更新數(shù)據(jù)的時候,誤刪了數(shù)據(jù)庫的內(nèi)容,因為數(shù)據(jù)庫做了主從,但是沒有做備份(備份很重要?。。┬液瞄_啟了bin-log,之后只好把整個日志的記錄拿回來本地進(jìn)行恢復(fù)。
之后自己也做了一個簡單的測試,對數(shù)據(jù)進(jìn)行恢復(fù),具體如下:
1、新建一個表
CREATE TABLE `lynn`.`sn_test` ( `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `age` INT( 3 ) NOT NULL ) ENGINE = MYISAM;
2、插入多條數(shù)據(jù)
INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn1', '1');
INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn2', '2');
INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn3', '3');
INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn4', '4');
3、查看數(shù)據(jù)并刪除
mysql select * from sn_test;
+-------+-----+
| name | age |
+---------+---+
| lynn1 | 1 |
| lynn2 | 2 |
| lynn3 | 3 |
| lynn4 | 4 |
+---------+-----+
4 rows in set (0.00 sec)
mysql delete from sn_test;
Query OK, 4 rows affected (0.00 sec)
mysql select * from sn_test;
Empty set (0.00 sec)
4、mysqlbinlog恢復(fù)數(shù)據(jù)
mysqlbinlog mysql-bin.000006 1.sql
查看1.txt里面數(shù)據(jù)插入的紀(jì)錄,把刪除之前的數(shù)據(jù)進(jìn)行恢復(fù)
mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123
重新登錄,查看數(shù)據(jù),OK,已經(jīng)成功恢復(fù)了
對于數(shù)據(jù)庫操作,應(yīng)該注意如下問題:
1、要常備份(全備,增量備份),出了問題可以最快恢復(fù)數(shù)據(jù);
2、操作數(shù)據(jù)庫前,要把需要操作的數(shù)據(jù)庫或者表dump出來;
3、需要把bin-log打開,就算沒有做上面的兩步,也可以通過日志恢復(fù)數(shù)據(jù)
恢復(fù)丟失的數(shù)據(jù)庫,如果沒有備份那就只能找數(shù)據(jù)恢復(fù)公司,像北亞數(shù)據(jù)恢復(fù)中心,都是可以信賴的,您也可以在網(wǎng)上查查其他方法,祝您好運(yùn)。
簡單情況下:進(jìn)入原來mysql安裝路徑下的data文件夾下,找到相應(yīng)的庫和ibdata1,進(jìn)行copy,就可回復(fù)原來的數(shù)據(jù)。
復(fù)雜情況下:
從另一臺機(jī)上把MySQL數(shù)據(jù)庫的mysql文件夾拷貝到本地機(jī)上,目的是恢復(fù)本地機(jī)對數(shù)據(jù)的訪問和操作。經(jīng)過如下幾種情況的操作。
1.
在本地重裝MySQL(安裝目錄D:\Program
Files\MySQL\MySQL
Server
5.0),直接把mysql文件夾拷貝至D:\Program
Files\MySQL\MySQL
Server
5.0\。結(jié)果,失?。簲?shù)據(jù)庫連接錯誤。
2.
卸載后重裝MySQL,將D:\Program
Files\MySQL\MySQL
Server
5.0\下的數(shù)據(jù)備份,只把mysql\data文件夾全部內(nèi)容拷貝到D:\Program
Files\MySQL\MySQL
Server
5.0\data下。結(jié)果,失?。簲?shù)據(jù)庫連接錯誤。將備份的數(shù)據(jù)還完覆蓋。結(jié)果,失敗,還是連接不上數(shù)據(jù)庫。
3.
卸載后重裝MySQL,將mysql\data文件夾里的cf1,last文件夾(這兩個是原來MySQL里的數(shù)據(jù)庫)拷貝進(jìn)D:\Program
Files\MySQL\MySQL
Server
5.0\data。連接成功,在Navicat
for
MySQL里看到數(shù)據(jù)庫cf1和last,但是不能訪問,因為數(shù)據(jù)全為零。明白了原來data里以數(shù)據(jù)庫命名的文件存儲的是數(shù)據(jù)庫的表結(jié)構(gòu),不是元數(shù)據(jù)。下一步,把data文件夾里的ibdata1文件(3.4G大,明顯存儲了元數(shù)據(jù))拷貝到D:\Program
Files\MySQL\MySQL
Server
5.0\data里,代替原來的ibdata1文件。重啟電腦,打開Navicat
for
MySQL,連接成功,數(shù)據(jù)可以訪問操作。
至此,操作終于成功。其實(shí)當(dāng)初在那臺機(jī)上把數(shù)據(jù)導(dǎo)出來,而不是現(xiàn)在直接把文件夾mysql復(fù)制過來會更容易恢復(fù)。但那臺機(jī)已經(jīng)重裝了系統(tǒng),也就是說MySQL失效了。
mysql數(shù)據(jù)恢復(fù)過程
從另一臺機(jī)上把mysql數(shù)據(jù)庫的mysql文件夾拷貝到本地機(jī)上,目的是恢復(fù)本地機(jī)對數(shù)據(jù)的訪問和操作。經(jīng)過如下幾種情況的操作。
1.
在本地重裝mysql(安裝目錄d:\program
files\mysql\mysql
server
5.0),直接把mysql文件夾拷貝至d:\program
files\mysql\mysql
server
5.0\。結(jié)果,失?。簲?shù)據(jù)庫連接錯誤。
2.
卸載后重裝mysql,將d:\program
files\mysql\mysql
server
5.0\下的數(shù)據(jù)備份,只把mysql\data文件夾全部內(nèi)容拷貝到d:\program
files\mysql\mysql
server
5.0\data下。結(jié)果,失?。簲?shù)據(jù)庫連接錯誤。將備份的數(shù)據(jù)還完覆蓋。結(jié)果,失敗,還是連接不上數(shù)據(jù)庫。
3.
卸載后重裝mysql,將mysql\data文件夾里的cf1,last文件夾(這兩個是原來mysql里的數(shù)據(jù)庫)拷貝進(jìn)d:\program
files\mysql\mysql
server
5.0\data。連接成功,在navicat
for
mysql里看到數(shù)據(jù)庫cf1和last,但是不能訪問,因為數(shù)據(jù)全為零。明白了原來data里以數(shù)據(jù)庫命名的文件存儲的是數(shù)據(jù)庫的表結(jié)構(gòu),不是元數(shù)據(jù)。下一步,把data文件夾里的ibdata1文件(3.4g大,明顯存儲了元數(shù)據(jù))拷貝到d:\program
files\mysql\mysql
server
5.0\data里,代替原來的ibdata1文件。重啟電腦,打開navicat
for
mysql,連接成功,數(shù)據(jù)可以訪問操作。
至此,操作終于成功。其實(shí)當(dāng)初在那臺機(jī)上把數(shù)據(jù)導(dǎo)出來,而不是現(xiàn)在直接把文件夾mysql復(fù)制過來會更容易恢復(fù)。但那臺機(jī)已經(jīng)重裝了系統(tǒng),也就是說mysql失效了。
把你備份的數(shù)據(jù)庫文件
用文本模式打開
找到你要恢復(fù)的兩個數(shù)據(jù)庫的sql語句
另存為sql文件
然后用
source
命令來恢復(fù)