mysql ---------binlog
admin
2023-06-10 06:03:28
0

1、基础知识

在mysql5.0以前版本支持文本格式和二进制格式的日志,但是在mysql5.0后版本就只支持二进制格式的日志。因为二进制日志在性能、信息处理等方面有更多的优点。

2、启用mysql二进制日志

mysql二进制日志由配置文件my.cnf的log-bin选项负责启用的。

mysql服务器默认会在数据根目录创建两个新文件:XXX-bin.000001和XXX-bin.index。若配置选项没有给出文件名,mysql将使用mysql-bin来命名这两个文件,其中.index文件包含一份完整的日志文件清单。如下:

[root@xin-c ~]# vim /etc/my.cnf


mysql ---------binlog


默认没有打开,我们将注释打开:


mysql ---------binlog


重启服务

[root@xin-c ~]# /etc/init.d/mysqld restart

mysql ---------binlog


[root@xin-c ~]# cd /data/mysql/

mysql ---------binlog

mysql会把用户对所有数据库的内容和结构的修改情况记入XXX-bin.n文件,但是不会记录SELECT和没有实际更新的UPDATE语句。

当然我们也可以通过相关命令查询,mysql是否已经开启binlog日志。如下:

mysql> show variables like 'log_%';


mysql ---------binlog


3、binlog日志文件的生成

当mysql停止或重启时,服务器会把日志文件记入下一个日志文件,mysql会在重启时生成一个新的日志文件,文件序号依次递增。

mysql ---------binlog

如果日志文件超过max_binlog_size(在my.cnf文件中配置)系统变量配置的上限时,也会生成新的日志文件。

注: /etc/my.cnf 默认情况下是没有这个选项的,需要自定义添加:

[root@xin-m mysql]# vim /etc/my.cnf 

mysql ---------binlog

除此之外,如果在mysql命令中执行flush logs命令也会生成新的日志文件。


mysql> flush logs;


mysql ---------binlog

4、查看系统中的binlog日志

查看系统中的binlog日志,使用show master logs命令。如下:

mysql> show master logs;


mysql ---------binlog

5、查看binlog日志文件

mysql提供了mysqlbinlog命令来查看日志文件,在记录每条变更日志的时候,日志文件都会把当前时间给记录下来,以便进行数据库恢复。如下:

[root@xin-m mysql]# mysqlbinlog mysql-bin.000004| more


mysql ---------binlog



6、使用binlog日志进行数据库恢复

如果遇到灾难事件,应该用最近一次制作的完整备份恢复数据库,然后使用备份之后的binlog日志件把数据库恢复到最接近现在的可用状态。

使用binlog日志进行恢复时需要依次进行,即最早生成的日志文件要最先恢复。恢复数据的命令格式如下:

mysqlbinlog xxx-bin.000001|mysql -uroot –p'password' dataname


-u  指定数据库用户名 –p 用户名对应的密码 dataname 数据库的名字 


7、binlog命令行参数详解

my.cnf配置文件有关binlog配置如下:

[root@xin-m mysql]# cat /etc/my.cnf |grep -v ^#|grep -v ^$


mysql ---------binlog



8、删除binlog日志

8.1删除部分binlog日志

删除binlog部分日志,我们可以日志名称和日志生成的时间来进行删除。删除命令如下:

mysql> purge master logs to 'mysql-bin.000009';


根据日志名称删除,只删除log_name之前的日志,log_name本身不会被删除。

mysql ---------binlog



通过上图我们可以看到,mysql-bin.000009之前的日志已经被全部删除。

[root@xin-c mysql]# ll --full-time

mysql> purge master logs before '2016-05-17 15:27:53';


根据日志生成的时间删除,只删除date之前的日志,date本身不会被删除。

mysql ---------binlog



8.2删除全部binlog日志

删除之前所有的binlog日志,并重新生成新的binlog,后缀从000001开始。使用命令:

mysql> reset master;


mysql ---------binlog

相关内容

热门资讯

以人工智能应用场景推进数实深度... (来源:天津日报) 转自:天津日报 “十五五”规划纲要提出“全面实施‘人工智能+’行动”,并对构建高...
3名青少年强奸犯免于监禁引众怒... 【文/观察者网 陈思佳】“三名青少年强奸犯免于监禁,引发英国全国争议。”据《国际商业时报》5月24日...
河南省“十五五”规划纲要全文发... 【大河财立方消息】5月25日,河南省国民经济和社会发展第十五个五年规划纲要全文发布。其中提到,提振汽...
当AI成为“搭子”,如何乘“智... 工人通过AI视觉检测设备对产品进行质检。  刘志勇摄 观众试戴AI翻译眼镜。  新华社记者 高咏薇...
DeepSeek永久降价,但梁... 文 | 罗超频道 DeepSeek宣布将V4-Pro API 75%的折扣「永久化」,全球同步生效...
起诉劳尔·卡斯特罗,美国离对古... 【文/观察者网专栏作者 韩笑鹏】2026年5月20日,佛罗里达州迈阿密,那座被古巴流亡政客们奉为精神...
航天员在轨驻留一年,空间站如何... 新京报讯(记者张建林)5月24日,长征二号F运载火箭将神舟二十三号载人飞船精准送入预定轨道,我国20...
西安建大团队研发塔吊驾驶员疲劳... 近日,华商报大风新闻记者从西安建筑科技大学了解到,该校资源工程学院李华副教授团队创新提出一种融合疲劳...
暗访跨省“黑客车”:超载、违停... “如果是正规客运,应该不会在加油站接人吧?”市民李先生近日联系解放日报·上观新闻民声直通车栏目反映跨...
经济热点快评|这朵即将盛放太空... 明天,一朵“紫荆花”即将闪耀太空。 载人航天工程办公室宣布,神舟二十三号航天员乘组定于5月24日奔赴...