python(11-5 开启日志 数据库恢复)

MySQL日志

开启bin-log日志

// vim 打开 mysql 配置文件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 

找到 以下两个配置项 用x删除'#'号(单个)dd(删除当前行)log_bin的地址记住
    server-id               = 123456
        log_bin                 = /var/lib/mysql/mysql-bin

把注释打开 改完后 保存推出


重启mysql
sudo service mysql restart

进入 cd logbin的地址 ls查询当前目录
cd /var/lib/ 
#修改 mysql权限
#sudo chmod 777 mysql


查看bin-log日志:
mysql>show binary logs;
进入 cd logbin的地址 ls查询当前目录
cd /var/lib/mysql
ls 查看是否存在mysql日志文件


mysql>reset master;
清空所有的bin-log日志
执行查看bin-log日志

备份数据:
mysqldump -uroot -pwei test -l -F '/tmp/test.sql'

其中:-F即flush logs,可以重新生成新的日志文件,当然包括log-bin日志

数据库的恢复

删库不一定非得跑路,在跑路前你需要做的是数据恢复

前提是开启了bin-log日志,并定期备份

以下模拟了一次删库和数据恢复的过程

-- 刷新 日志
mysql> reset master;
Query OK, 0 rows affected (0.39 sec)

mysql> create database ops;
Query OK, 1 row affected (0.28 sec)

mysql> use ops;
Database changed


create table customers(
id int not null auto_increment,
name char(20) not null,
age int not null,
primary key(id)
)engine=InnoDB;


insert into customers values(1,"wangbo","24"),(2,"guohui","22"),(3,"zhangheng","27");


mysql> select *  from customers;
+----+-----------+-----+
| id | name      | age |
+----+-----------+-----+
|  1 | wangbo    |  24 |
|  2 | guohui    |  22 |
|  3 | zhangheng |  27 |
+----+-----------+-----+
3 rows in set (0.00 sec)

-- (2)现在进行全备份
mysqldump -uroot -p -B -F -R -x --master-data=2 ops >/home/yc/ops.sql

-----------------
参数说明:
-B:指定数据库
-F:刷新日志
-R:备份存储过程等
-x:锁表
--master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息



-- 再添加新的数据
insert into customers values(4,"liupeng","21"),(5,"xiaoda","31"),(6,"fuaiai","26");

mysql> select * from customers;
+----+-----------+-----+
| id | name      | age |
+----+-----------+-----+
|  1 | wangbo    |  24 |
|  2 | guohui    |  22 |
|  3 | zhangheng |  27 |
|  4 | liupeng   |  21 |
|  5 | xiaoda    |  31 |
|  6 | fuaiai    |  26 |
+----+-----------+-----+
6 rows in set (0.00 sec)



-- (4)此时误操作,删除了test数据库
drop database ops;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| python4            |
| sys                |
| wx                 |
+--------------------+
6 rows in set (0.00 sec)




将binlog文件导出sql文件,并 vi 编辑它删除其中的drop语句
[root@vm-002 backup]# mysqlbinlog -d ops /var/lib/mysql/mysql-bin.000002> /home/yc/002bin.sql
sudo mysqlbinlog -d ops /var/lib/mysql/mysql-bin.000002> /home/yc/002bin.sql




[root@vm-002 backup]# ls
002bin.sql mysql-bin.000002 ops_2016-09-25.sql
[root@vm-002 backup]# vi 002bin.sql #删除里面的drop语句 :qw!保存并退出


-- 首先导入备份的数据文件
mysql -uroot -p < /home/yc/ops.sql 



再导入删除 drop语句后的 binlog日志文件
mysql -uroot -p ops < /home/yc/002bin.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值