windows下mysql中binlog日志分析和數(shù)據(jù)恢復(fù)問題
1.首先查看是否開啟了binlog
show variables like '%log_bin%';

看到了是沒有開啟的。
2.開啟binlog日志,并重啟mysql服務(wù)
不能通過命令的方式去打開,因?yàn)闀?huì)提示說這個(gè)參數(shù)是只讀的。如下圖:

所以,打開mysql的配置文件,找到mysql的配置文件(和Linux下的文件名是不一樣的,Linux是my.cnf),windows默認(rèn)的在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
在[mysqld]節(jié)點(diǎn)下添加 log-bin= mysqlbinlog binlog-format=ROW

配置好之后,要進(jìn)行重啟mysql服務(wù),沒有重啟之前該路徑目錄長這樣子

重啟服務(wù)
在任務(wù)管理器中找到mysql右鍵點(diǎn)擊重新啟動(dòng)。

重啟服務(wù)之后該文件的目錄長這樣子,新添加了如圖所示的文件。

此時(shí)在命令行中再去查看是否開啟了binlog,

3.查看有哪些binlog文件和正在使用的binlog文件
查看有哪些binlog文件
show binary logs; 或者 show master logs;

查看當(dāng)前正在使用的是哪一個(gè)binlog文件
show master status;

4.binlog中的事件(show binlog events)數(shù)據(jù)恢復(fù)就會(huì)使用到該命令
我們執(zhí)行命令都是以事件的形式操作的
查看所有的事件 show binlog events; 當(dāng)binlog文件比較多的時(shí)候可以加條件來查看具體的某一個(gè)文件中的所有事件 show binlog events in 'mysqlbinlog.000001';

5.創(chuàng)建一個(gè)數(shù)據(jù)庫和一張表并插入數(shù)據(jù)之后再次查看binlog中的事件(show binlog events)
create database binlogtest;

創(chuàng)建數(shù)據(jù)庫后,再查看binlog日志文件,就看到剛剛執(zhí)行的創(chuàng)建數(shù)據(jù)庫的命令事件。

在剛才創(chuàng)建的數(shù)據(jù)庫下面新建一張測試表并插入數(shù)據(jù)。
mysql> use binlogtest; Database changed mysql> CREATE TABLE test ( id int NOT NULL AUTO_INCREMENT, name varchar(10) DEFAULT NULL, age int DEFAULT 0, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; mysql> insert into test values(1,'zhangsan',20); Query OK, 1 row affected (0.01 sec) mysql> insert into test values(2,'lisi',30); Query OK, 1 row affected (0.00 sec) mysql> insert into test values(3,'wangwu',40); Query OK, 1 row affected (0.00 sec)
show binlog events in 'mysqlbinlog.000001';
已經(jīng)將創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、新增數(shù)據(jù)庫日志都添加進(jìn)去了。

6.查看binlog文件中的內(nèi)容(mysqlbinlog)
由于binlog是二進(jìn)制的文件,是不能直接查看的,可以使用mysqlbinlog命令就可以轉(zhuǎn)換成人能夠看懂的內(nèi)容,進(jìn)入到C:\ProgramData\MySQL\MySQL Server 5.7\Data下面打開cmd
結(jié)尾沒有分號(hào)
mysqlbinlog "mysqlbinlog.000001" 或者將binlog文件換成人能夠看懂的文件 mysqlbinlog "mysqlbinlog.000001">"test.sql"

轉(zhuǎn)成文件


在控制臺(tái)不好看,用記事本打開方便查看

7.數(shù)據(jù)恢復(fù)

現(xiàn)在做了一個(gè)偉大的壯舉,,,刪庫了

已經(jīng)刪庫了,現(xiàn)在要進(jìn)行數(shù)據(jù)的恢復(fù)
查看有哪些binlog文件(這個(gè)binlog文件是重啟一次mysql服務(wù)就會(huì)形成一個(gè)新的文件mysqlbinlog.000002 …后綴依次累加)
show binary logs;

查看刪庫之前執(zhí)行過的操作事件,并找到要恢復(fù)數(shù)據(jù)的起點(diǎn)和終點(diǎn)(這里在控制到中看起來比較費(fèi)勁,可以借助別的軟件如:navicat)
show binlog events; 或者 show binlog events in 'mysqlbinlog.000001';

那就以創(chuàng)建數(shù)據(jù)庫為起點(diǎn),以刪庫之前為終點(diǎn)
為了方便查看我將上圖show binlog events;
結(jié)果復(fù)制到excel中

binlog命令恢復(fù)數(shù)據(jù)
mysqlbinlog --start-position=154 --stop-position=1503 mysqlbinlog.000001 | mysql -uroot -proot

提示信息不需要理會(huì),要是有強(qiáng)迫癥,那你就先
mysqlbinlog --start-position=154 --stop-position=1503 mysqlbinlog.000001 | mysql -uroot -p 回車 再次單獨(dú)輸入密碼 root

8.總結(jié)
簡單來說,要恢復(fù)數(shù)據(jù)
1.查看當(dāng)前使用的binlog文件是那個(gè)
show binary logs; --文件列表 show master status; --當(dāng)前使用的是哪個(gè)文件
2.針對(duì)當(dāng)前使用的文件查看事件,以此來確認(rèn)要恢復(fù)數(shù)據(jù)的終點(diǎn)和起點(diǎn)
show binlog events; 或者 show binlog events in 'mysqlbinlog.000001';
3.攜帶起點(diǎn)和終點(diǎn),執(zhí)行數(shù)據(jù)恢復(fù)命令
mysqlbinlog --start-position=154 --stop-position=1503 mysqlbinlog.000001 | mysql -uroot -proot
到此這篇關(guān)于windows下mysql中binlog日志分析和數(shù)據(jù)恢復(fù)的文章就介紹到這了,更多相關(guān)mysql binlog日志分析和數(shù)據(jù)恢復(fù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mysql如何通過binlog日志恢復(fù)數(shù)據(jù)詳解
- 教你自動(dòng)恢復(fù)MySQL數(shù)據(jù)庫的日志文件(binlog)
- MySQL使用binlog日志進(jìn)行數(shù)據(jù)庫遷移和數(shù)據(jù)恢復(fù)
- 解說mysql之binlog日志以及利用binlog日志恢復(fù)數(shù)據(jù)的方法
- MySQL使用binlog日志做數(shù)據(jù)恢復(fù)的實(shí)現(xiàn)
- MySQL使用binlog日志恢復(fù)數(shù)據(jù)的方法步驟
- MySQL中根據(jù)binlog日志進(jìn)行恢復(fù)的實(shí)現(xiàn)
- Mysql利用binlog日志恢復(fù)數(shù)據(jù)實(shí)戰(zhàn)案例
相關(guān)文章
Windows版mysql?8.0.28?安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows版mysql?8.0.28?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
Mysql ALTER TABLE加字段的時(shí)候到底鎖不鎖表
本文主要介紹了Mysql ALTER TABLE加字段的時(shí)候到底鎖不鎖表,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
手把手教你使用Navicat生成MySQL測試數(shù)據(jù)
Navicat是一套快速、可靠并價(jià)格相當(dāng)便宜的數(shù)據(jù)庫管理工具,專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設(shè),下面這篇文章主要給大家介紹了關(guān)于使用Navicat生成MySQL測試數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2023-05-05

