Windows上MySQL开启Binlog日志以及如何查看

MySQL的Binlog日志内容量巨大,这里就不赘述了,后面有时间会做专门的关于MySQL的Binlog日志的总结,不过我们也得知道Binlog日志是干啥的。

一、Binlog日志

1.什么是Binlog日志?
  binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志
  binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改,但你可以通过查询通用日志来查看MySQL执行过的所有语句。

2.Binlog日志的作用?
  因为Binlog日志主要就是记录数据库表结构变更和数据修改的,所以主要有两个用途:
(1)数据库表备份
(2)数据库主从复制

3.Binlog日志相关参数

参数详解
log_bin设置此参数表示启用binlog功能,并指定路径名称
log_bin_index设置此参数是指定二进制索引文件的路径与名称
binlog_do_db此参数表示只记录指定数据库的二进制日志
binlog_ignore_db此参数表示不记录指定的数据库的二进制日志
max_binlog_cache_size此参数表示binlog使用的内存最大的尺寸
binlog_cache_size此参数表示binlog使用的内存大小,可以通过状态变量binlog_cache_use和binlog_cache_disk_use来帮助测试。
binlog_cache_use使用二进制日志缓存的事务数量
binlog_cache_disk_use使用二进制日志缓存但超过binlog_cache_size值并使用临时文件来保存事务中的语句的事务数量
max_binlog_sizeBinlog最大值,最大和默认值是1GB,该设置并不能严格控制Binlog的大小,尤其是Binlog比较靠近最大值而又遇到一个比较大事务时,为了保证事务的完整性,不可能做切换日志的动作,只能将该事务的所有SQL都记录进当前日志,直到事务结束
sync_binlog这个参数直接影响mysql的性能和完整性。sync_binlog=0:当事务提交后,Mysql仅仅是将binlog_cache中的数据写入Binlog文件,但不执行fsync之类的磁盘 同步指令通知文件系统将缓存刷新到磁盘,而让Filesystem自行决定什么时候来做同步,这个是性能最好的。sync_binlog=n,在进行n次事务提交以后,Mysql将执行一次fsync之类的磁盘同步指令,同志文件系统将Binlog文件缓存刷新到磁盘。Mysql中默认的设置是sync_binlog=0,即不作任何强制性的磁盘刷新指令,这时性能是最好的,但风险也是最大的。一旦系统绷Crash,在文件系统缓存中的所有Binlog信息都会丢失

二、Windows上如何开启MySQL的Binlog日志

默认情况下MySQL的Binary是关闭的,例如你在MySQL中输入“show variables like ‘log_bin’;”得到的记过是OFF(关闭)。Windows和Linux中MySQL开启Binlog日志方式大致相同,这里就以Windows为例。

1.修改mysql的配置文件my.ini
添加如下配置:

# Binary Logging.
# log-bin
log_bin = mysql-bin
# log_bin = C:\ProgramData\MySQL\MySQL Server 5.7\Data\log\bin_log
binlog_format = ROW

log_bin为mysql-bin时,binlog日志文件会默认生成在data目录下,并以mysql-bin.00000x方式命名。
  log_bin为绝对路径时,binlog日志文件会生成在指定路径的目录下,命名方式同上。

2.重启MySQL服务即可
Windows中重启MySQL服务:
(1)在任务管理器中直接找到mysql57(我的版本为5.7,版本不同这里也会不同),直接右键点击“重新启动”即可。
(2)在管理员身份下运行cmd界面中输入“net stop mysql57”和“net start mysql57”,先停止服务,再开启服务即可。

重启服务后再通过上面说到的“show variables like ‘log_bin’;”命令查询得到ON,即表示Binlog日志开启完成。

三、Windows上查看MySQL的Binlog日志文件

由于二进制文件不方便直接查看,会有编码问题,这里介绍下通过MySQL自带的mysqlbinlog(在MySQL程序目录的bin目录下有mysqlbinlog.exe程序文件)查看binlog日志文件的方式。(Linux上也可如此)

前提:cmd进入程序目录(bin目录,也就是mysqlbinlog所在目录)
方式一:通过mysqlbinlog直接查看

mysqlbinlog.exe mysql-bin.000001

方式二:通过mysqlbinlog将binlog日志文件转换为txt查看

mysqlbinlog.exe -u username -p password mysql-bin.000001 >001.txt
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值