问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql二进制日志怎么开启

发布网友 发布时间:2022-04-08 00:54

我来回答

3个回答

懂视网 时间:2022-04-08 05:16


1.开启bin-log

(1)在my.con配置文件里面

[mysqld] #选项添加

log-bin=mysql-bin #日志文件名称,未指定位置,默认数据文件位置

重启mysql服务


log_bin是生成的bin-log的文件名,后缀则是6位数字的编码,从000001开始,按照上面的配置,生成的文件则为: 

      mysql_bin.000001 

      mysql_bin.000002 

      ...... 

2.基本操作

(1)查看所有日志文件:

mysql> show binary logs;   或show master logs;

+------------------+-----------+

| Log_name         | File_size |

+------------------+-----------+

| mysql-bin.000001 |       120 |

+------------------+-----------+


(2)查看正在写入的日志文件:

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |      120 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+


(3)查看当前binlog文件内容:

mysql> show binlog events;  #可以格式化输出 show binlog eventsG; 或指定日志文件查看show binlog events in ‘mysql-bin.000001‘;

+------------------+-----+-------------+-----------+-------------+---------------------------------------+

| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                  |

+------------------+-----+-------------+-----------+-------------+---------------------------------------+

| mysql-bin.000001 |   4 | Format_desc |         1 |         120 | Server ver: 5.6.25-log, Binlog ver: 4 |

+------------------+-----+-------------+-----------+-------------+---------------------------------------+

注:

Log_name:此条log存在哪个文件中 

Pos:log在bin-log中的开始位置 

Event_type:log的类型信息 

Server_id:可以查看配置中的server_id,表示log是哪个服务器产生 

End_log_pos:log在bin-log中的结束位置 

Info:log的一些备注信息,可以直观的看出进行了什么操作 


(4)手动启用新的日志文件,一般备份完数据库后执行

mysql> show master status; #

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |      120 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)


mysql> flush logs; #结束正在写入日志文件

Query OK, 0 rows affected (0.00 sec)


mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000002 |      120 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+


(5)删除所有二进制日志,并从新开始记录 

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000002 |      120 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)


mysql> reset master; #重新开始

Query OK, 0 rows affected (0.00 sec)


mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |      120 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

另外:

mysql> purge master logs to ‘mysql-bin.000002‘;  #是将‘mysql-bin.000002‘编号之前的所有日志进行删除

mysql> purge master logs before ‘yyyy-mm-dd hh:mm:ss‘ #是将在‘yyyy-mm-dd hh:mm:ss‘时间之前的所有日志进行删除


3.二进制日志文件导出


# mysqlbinlog --start-datetime="2015-07-02 11:25:56" --stop-datetime="2015-07-02 14:20:10" mysql-bin.000001 > /data/test01.log #按时间点导出


# mysqlbinlog --start-position=203  --stop-position=203 mysql-bin.000001 > /data/test02.log #按事件位置导出


4.恢复数据


强烈建议:做任何恢复之前都给数据库做一个完整备份,新建库进行恢复。


恢复

 bin-log是记录着mysql所有事件的操作,可以通过bin-log做完整恢复,基于时间点的恢复,和基于位置的恢复



(1)完整恢复,先执行上次完整备份恢复,再执行自上次备份后产生的二进制日志文件恢复

# mysql localhost mysql-bin.000001 | mysql -uroot -p

这样数据库就可以完全的恢复到崩溃前的完全状态


(2)基于时间点的恢复,如果确认误操作时间点为2015-06-04 10:00:00执行如下

# mysqlbinlog --stop-date=‘2015-06-04 9:59:59‘ mysql-bin.000001 | mysql -uroot -p


然后跳过误操作的时间点,继续执行后面的binlog

# mysqlbinlog --start-date=‘2015-06-04 10:01:00‘ mysql-bin.000001 | mysql -uroot -p


其中--stop-date=‘2015-06-04 9:59:59‘ 和 --start-date=‘2015-06-04 10:01:00‘ 


取两时间点

# mysqlbinlog --start-datetime="2015-07-02 11:25:56" --stop-datetime="2015-07-02 14:20:10" mysql-bin.000001 | mysql -u root -p 


#注:其中的时间是你误操作的时间,而且这个时间点还可能涉及到的不只是误操作,也有可能有正确的操作也被跳过去了。那么执行位置恢复


基于位置恢复,通过查看日志文件信息,确认6259-6362为误操作点


# mysqlbinlog --stop-position=6259 mysql-bin.000001 | mysql -uroot -p #从1开始至6259的事件读,不包括6259事件


# mysqlbinlog --start-position=6363 mysql-bin.000001 | mysql -uroot -p #从6259的事件开始读


# 取两事件点

mysqlbinlog --start-position=5786 --stop-position=6254 mysql-bin.000001 | mysql -uroot -p


本文出自 “Home_Tang” 博客,请务必保留此出处http://yagetang.blog.51cto.com/1780698/1670236

mysql二进制日志(bin-log)配置及相关操作

标签:mysql二进制日志(bin-log)配置及相关操作

热心网友 时间:2022-04-08 02:24

linux下,找到MySQL的配置文件,一般是/etc/my.cnf

添加下面两行

log-bin=mysql-bin
binlog_format=mixed

如果有标首‘[mysqld]’字样,就添加到[mysqld]下,不要添加到其他的下面。

这样就开启了二进制日志,之后做的所有和修改数据表有关的操作都会被记录。
修改 my.ini文件
加入以下语句(在没有设置的前提下)

复制代码代码如下:
log-error=d:/log/mysql/mysql_log_err.txt
log=d:/log/mysql/mysql_log.txt
#log-bin=d:/log/mysql/mysql_log_bin
log-slow-queries= d:/log/mysql/mysql_log_slow.txt
使用以下命令查看是否启用了日志

复制代码代码如下:
mysql>show variables like ’log_%’;

热心网友 时间:2022-04-08 03:42

如果我要存的话直接二进制存数据库。只是没那需求
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
江苏省农业机械管理条例第一章 总 则 江苏省农业机械管理条例第六章 法律责任 核心交换机和普通交换机的区别 什么时候需要使用核心交换机 核心交换机与普通交换机的区别及核心交换机的重要性 工业交换机哪个品牌更有保障 求各位大侠~~最近要做毕业设计!但我真没有时间做!谁给我做了 我分全 ... 各位大侠!小弟现在被单片机、步进电机搞的睡不着觉了。向大家求救。我... ...在论坛上经常看到T11T12T13还有S2S3都是什么意思! 魔兽世界中S1 S2 S3 T1 T2 T3什么意思 马凡氏综合征疾病治疗 葡萄树结果之后如何剪枝干,掐头 今年刚定植的葡萄如何摘心和抹芽 葡萄修剪方法 有个直播的房间,里面是一个胖的和一个瘦的,然后老是大喊的,是在哪里直播的?房间号是啥? 黑玫瑰葡萄的摘心方法? 栽种葡萄打顶摘心时,都有哪些注意事项? 求助,这个时节的葡萄如何摘心 给葡萄新梢摘心能节省养分,具体应该如何操作呢? 请教一下葡萄树的怎样摘芯管理方法 谢谢了 喝茶的礼仪,喝进嘴的茶叶如何处理比较恰当? 葡萄一叶摘心和一叶绝后摘心有区别吗 茶叶的产地和饮用方法 喝茶的礼仪,喝进嘴的茶叶如何处理比较恰当 茶道礼仪 中国茶道有哪些饮茶礼节 茶叶的分类,以及饮用方法和注意事项 喝茶是什么服务? 饮茶服务的整个过程 成语接龙 敝帷不弃 成语接龙,“自暴自弃”接下一个 成语接龙 见弃于人 房间里有涉黄直播,网警又不知道怎么拿到证据? 锇肚子按哪个穴位 肚子痛按什么穴位 谁知道这个直播的在哪里直播,房间号多少,谢谢了! 盆栽金手指葡萄如何摘心? 这个是哪个直播间 房间号多少 谁知道,葡萄树的剪枝技巧? 私自进校拍摄的女网红回应,再也不去这个学校,委屈得快崩溃了,你怎么看? 请问专家现在温室葡萄什么时候摘心最好?穗上几个叶片摘心? 红人直播哪个广告联盟在做? 曾爆红网络的“尬舞皇帝”顾东林,在直播中死去,你怎么看? 二年级下学期看图写话爱护环境怎么写 二年级下册语文看图写话怎么写 支付宝收款二维码怎么制做 二年级下学期看图写话美丽的桥 二年级下学期小朋友浇花看图写话 报应之道:觉醒怎么入侵别人? 现实的社会做好人会被人当傻子看不起,难道现实的社会只能做坏人吗? 为什么上帝不让亚当夏娃吃善恶树上的果子?人类觉醒就要辨别善恶吗?这跟因果关系有什么联系吗? 看图写话二年级下册妙语连珠