2021-04-14

一、windows系统恢复的数据库数据:

第一步:cmd 登陆mysql

mysql -uroot -p
1
第二步:选择一个数据库lxq

mysql> use lxq;
1
第三步:创建一个表:sn_test

mysql> CREATE TABLE lxq.sn_test ( name VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , age INT( 3 ) NOT NULL ) ENGINE = MYISAM;
1
第四步:插入表:sn_test 数据

INSERT INTO lxq.sn_test (name, age) VALUES (‘lxq1’, ‘1’);
INSERT INTO lxq.sn_test (name, age) VALUES (‘lxq2’, ‘2’);
INSERT INTO lxq.sn_test (name, age) VALUES (‘lxq3’, ‘3’);
INSERT INTO lxq.sn_test (name, age) VALUES (‘lxq4’, ‘4’);
1
2
3
4
第五步:查看数据并删除

mysql> select * from sn_test;
mysql> delete from sn_test;
mysql> select * from sn_test;
1
2
3
第六步:查看自己的操作被记录在了那个binlog文件中(一般存放在标号最大的ID下)

1.查询所有日志 Position 值;

mysql> show master logs;
±-----------------±----------+
| Log_name | File_size |
±-----------------±----------+
| mysql-bin.000001 | 790 |
| mysql-bin.000002 | 126 |
| mysql-bin.000003 | 126 |
| mysql-bin.000004 | 126 |
| mysql-bin.000757 | 126 |
| mysql-bin.000758 | 126 |
| mysql-bin.000759 | 150 |
| mysql-bin.000760 | 2073 |
| mysql-bin.000761 | 107 |
±-----------------±----------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2.查询最近一次也就是当前日志的 Position 值;(这步操作适用于刚刚删除数据 )

mysql> show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------±---------±-------------±-----------------+
| mysql-bin.000761 | 1151 | | |
±-----------------±---------±-------------±-----------------+
1
2
3
4
5
6
第七步:拿最新日志文件做案例,查看 mysql-bin.000761 这个日志文件中记录了那些操作执行:

mysql> show binlog events in ‘mysql-bin.000761’;
1
| mysql-bin.000761 | 390 | Query | 1 | 593 | use lxq; CREATE TABLE lxq.sn_test ( name VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8
_bin NOT NULL , age INT( 3 ) NOT NULL ) ENGINE = MYISAM |
| mysql-bin.000761 | 593 | Query | 1 | 660 | BEGIN
|
| mysql-bin.000761 | 660 | Query | 1 | 786 | use lxq; INSERT INTO lxq.sn_test (name, age) VALUES (‘lxq1’, ‘1’)
|
| mysql-bin.000761 | 786 | Query | 1 | 854 | COMMIT
|
| mysql-bin.000761 | 854 | Query | 1 | 921 | BEGIN
|
| mysql-bin.000761 | 921 | Query | 1 | 1047 | use lxq; INSERT INTO lxq.sn_test (name, age) VALUES (‘lxq2’, ‘2’)
|
| mysql-bin.000761 | 1047 | Query | 1 | 1115 | COMMIT
|
| mysql-bin.000761 | 1115 | Query | 1 | 1182 | BEGIN
|
| mysql-bin.000761 | 1182 | Query | 1 | 1308 | use lxq; INSERT INTO lxq.sn_test (name, age) VALUES (‘lxq3’, ‘3’)
|
| mysql-bin.000761 | 1308 | Query | 1 | 1376 | COMMIT
|
| mysql-bin.000761 | 1376 | Query | 1 | 1443 | BEGIN
|
| mysql-bin.000761 | 1443 | Query | 1 | 1569 | use lxq; INSERT INTO lxq.sn_test (name, age) VALUES (‘lxq4’, ‘4’)
|
mysql-bin.000761 | 1704 | Query | 1 | 1785 | use lxq; delete from sn_test

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
第八步: 从上面查询结果中找到被删除的表在创建时的sql 语句的 position值 593 和 删除数据时候的sql语句前一个 position 值 1569 。下面开始最重要的一步使用 mysqlbinlog 进行恢复数据操作, 需要在路径 D:\BtSoft\WebSoft\mysql\MySQL5.5\data\ 下执行:

D:\BtSoft\WebSoft\mysql\MySQL5.5\data\ > mysqlbinlog mysql-bin.000761 --start-position 593 --stop-position 1569 |mysql -u root -p
1
第九步:输入mysql数据库密码:


1
第十步:重新登录,查看数据,OK,已经成功恢复了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值