binlog开启和查看
1. 首先需要将mysql的binlog日志打开。默认是关闭的。
参考网址:Windows下Mysql5.7开启binlog步骤及注意事项(https://www.cnblogs.com/wangwust/p/6433453.html)
参考网址:https://blog.csdn.net/zjerryj/article/details/77152226
参考网址:mysql row日志格式下 查看binlog sql语句
参考网址:GTID binlog解析后导入无效
使用mysql Command Line Clinet。
查看是否已开启binlog日志输出。
--》 show binary logs; ERROR 1381 (HY000): You are not using binary logging (表示未开启)
※注意: my.ini 存放在 C:\ProgramData\MySQL\MySQL Server 5.7 而非 Program文件目录下,注意ProgramData文件夹默认是隐藏不显示。
Windows下MySQL的配置文件是my.ini 在主目录下
Linux下是/etc/my.conf
用管理员身份打开my.ini,添加binlog输出
# binlog node
log_bin = mysql-bin
binlog_format = ROW
server_id=1
注意有可能server_id已经存在,这个ID要唯一,不能和别的slave_id重复。
#修改UTF8
default-character-set=UTF8
character-set-server=UTF8
※ 注意不是UTF-8
由于binlog日志不会自动清除,因此需要手动设置过期删除,防止文件过大占用内存。
expire-logs-days=
重启mysql57服务。
mysql服务添加到path中则直接在控制台:
--》C:\WINDOWS\system32>net stop mysql57
--》C:\WINDOWS\system32>net start mysql57
此时在mysql Command Line Client:
--> show binary logs; 可查看binlog日志
--> show variables like '%log_bin%'; 这个亦可说明log是否有开启
--> set global expire_logs_days=30; //防止binlog积压,占用内存,设置失效30天
--> show variables like '%expire_logs_days%'; //查看
生成的binlog日志默认就在log_bin 给的文件位置下,如果没有路径就是my.ini对应的data文件夹下。
log_bin = D:\log\mysql\mysql-bin
※注意:对应的文件夹要存在,否则无法启动。
mysql-bin.
mysql-bin.index
查看:
--》show binlog events; //获取第一个binlog的日志
--》 show binlog events in 'mysql-bin.000002'; //获取指定的binlog日志
--》 show master status\G; //查看当前正在写入的binlog日志
--》 show binlog events from 219; //根据pos获取日志
在cmd下使用mysqlbinlog转化binlog二进制日志还原为sql:
-》mysqlbinlog -d [schemal] --start-datetime="2018-10-15 8:10:01" --stop-datetime="2018-10-15 18:10:00" d:\log\mysql\mysql-bin.000001 > d:\log\insert.sql
这样就可以还原之前被处理掉的数据。
如果查看到的sql文件中并不能直接看到insert或update,delete语句,而有base64加码的数据,则需要在导出sql时做转化。
-》 mysqlbinlog --base64-output=decode-rows -v -d [schemal] --start-datetime="2018-10-15 8:10:01" --stop-datetime="2018-10-15 18:10:00" d:\log\mysql\mysql-bin.000002 > d:\log\insert2.sql
也可以使用position代替date。
--start-position
--stop-position
可以直接执行binlog进行还原:
--》mysqlbinlog -d [schema] --start-datetime="2018-10-15 8:10:01" --stop-datetime="2018-10-15 18:10:00" d:\log\mysql\mysql-bin.000004 |mysql -u root -p
我们可以直接将还原的sql直接执行。
--》mysql source D:\log\insert4.sql
※ 执行后发现数据并未同步到数据库中,提示信息正常。
打开 insert4.sql发现里面有好多SET @@SESSION.GTID_NEXT= [序列码]
此内容为事务控制用的信息,但这些信息已经被用过了,被记入到Executed_Gtid_Set中,因此执行被跳过。
在导出sql的语句中添加 --skip-gtids=true
binlog开启和查看的更多相关文章
- Window 下mysql binlog开启及查看,mysqlbinlog
查看是否开启了binlog: win+r => cmd => 连接mysql=>show variables like 'log_%'; mysql> show variabl ...
- binlog之三:binlog开启、查看
0.开启二进制日志记录功能: #vim /etc/my.cnf [mysqld] log_bin=mysql-bin b ...
- mysql日志开启和查看
mysql日志开启和查看. 找到mysql根目录下的my.ini文件,打开在下面插入 log-bin=mysql-bin binlog_format=mixed 然后重启mysql. 在dos端登录m ...
- MySQL 开启和查看bin-log日志
1.5.7版本前修改my.cnf文件,添加log-bin=my-bin(my.cnf的位置根据自己安装的路径查看)# vi /usr/local/mysql/my.cnflog-bin=my-bin ...
- 开启和查看mysql的bin-log日志
[root@VM_0_7_centos data]# vim /etc/my.cnf [root@VM_0_7_centos data]# vim /etc/my.cnf [root@VM_0_7_c ...
- mysql中如何开启binlog?开启二进制日志文件?binary log?
需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启my ...
- Apache开启状态查看页面(原创贴-转载请注明出处)
=================写在前面的话================== 场景描述:有时候我们需要查看apache的运行状态,只需要开启apache的status功能就可以实现,但是stat ...
- MySQL的binlog数据如何查看
binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...
- linux查看端口是否已开启和查看文件数
查看端口是否开启 lsof -i:80 查看文件数 ls | wc -w
随机推荐
- appium的log详细分析
下面介绍appium日志的大概分析 //启动appium服务成功2017-03-24 11:22:49:218 - info: [Appium] Welcome to Appium v1.6.3201 ...
- 服务容错保护断路器Hystrix之三:断路器监控(Hystrix Dashboard)-单体监控
turbine:英 [ˈtɜ:baɪn] 美 [ˈtɜ:rbaɪn] n.汽轮机;涡轮机;透平机 一.Hystrix Dashboard简介 在微服务架构中为了保证程序的可用性,防止程序出错导致网络阻 ...
- selector的小箭头去除
selector的小箭头去除 .not-arrow{ -webkit-appearance:none; -moz-appearance:none; appearance:none; /*去掉下拉箭头* ...
- MySQL 8.0用户和角色管理
MySQL 8.0用户和角色管理 MySQL8.0新加了很多功能,其中在用户管理中增加了角色的管理,默认的密码加密方式也做了调整,由之前的sha1改为了sha2,同时加上5.7的禁用用户和用户过期的设 ...
- (转)Linux 系统服务的启动顺序解析 rc.*
介绍系统按照不同级别启动时需要启动的服务. 进入目录:etc 执行命令:ls -l | grep "rc.*" | sort 结果如下图: 1 系统在启动时,通过inittab ...
- Java GC2
虚拟机中共划分为3个代:年轻代,老年代,持久代:其中持久代主要存放Java类的类信息,与垃圾收集要收集的Java对象关系不大,年轻代和老年代的划分是对垃圾收集影响较大的 年轻代: HotSpot JV ...
- Linux性能优化 第六章 性能工具:磁盘I/O
6.1 磁盘I/O介绍 一般来说,Linux磁盘的每个分区要么包含一个文件系统,要么包含一个交换分区.这些分区被挂载到Linux根文件系统,该系统由/etc/fstab指定.这些被挂载的文件系统包含了 ...
- solr学习之域的管理与中文分析器配置
该文使用 Centos6.5 64 位 solr4.10.3 IK-Analyzer中文分析器 一.solr域 在solr中域的概念与lucene中域的概念相同,数据库的一条记录或者一个文 ...
- python函数的return
return语句用于退出函数,向调用方返回一个表达式.return在不带参数的情况下(或者没有写return语句),默认返回None.None是一个特殊的值,它的数据类型是NoneType.NoneT ...
- php添加多组数据到数据库
//添加sql的数据 $sqldatas=getParam('sqldatas');//这里的sqldatas是从前台传过来的json字符串 //将json字符串转为json对象 $sqldata=j ...