关于mysqlbinlog的重要性.

今天在做update更新数据的时候,因为没有统一好需要更新的数据编执行了update操作,所以需要回滚到先前的数据,所以就赶紧去服务器看binlog日志,结果一看binlog竟然没有开启,把我给惊的啊,然后一看mysql原来是用的腾讯云的mysql数据库,自带的开启了binlog功能,知道了这点,然后就好办了,赶紧回滚吧.

下载binlog2sql工具

git clone https://github.com/danfengcao/binlog2sql.git
pip install -r requirements.txt

查看binlog

进入到show master logs;查看binlog信息,并找到最新的binlog文件.

执行回滚操作

假设我这里mysql-bin.000002是最新的binlog日志.则可以使用如下命令进行操作:
1.查看:python binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uadmin -p'admin' -dtest -t f --start-file='mysql-bin.000002'
2.生成: python binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uadmin -p'admin' -dtest -t f --start-file='mysql-bin.000002' --start-pos=4 --end-pos=314 -B
3.执行:python binlog2sql.py -h127.0.0.1 -P3306 -uadmin -p'admin' -dtest -t f --start-file='mysql-bin.000002' --start-pos=4 --end-pos=314 -B | mysql -h127.0.0.1 -P3306 -uadmin -p'admin'

开启自己本机的binlog功能

拿我的mysql来说,mysql配置文件在/etc/mysql/mysql.conf.d,具体操作步骤如下:

#cd /etc/mysql/mysql.conf.d
#vim mysqld.cnf

找到server-id选项,并开启相应配置:

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1000M
binlog-format = row

然后重启mysql服务

sudo service mysql restart

连接到数据库,并使用吗show master logs;命令查看binlog日志,如果出现如下结果就说嘛开启成功.
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 154 |
+------------------+-----------+

进行到这一步,说明你的binlog已经可以起飞了,不过在实际操作数据库的过程中还是要多加注意,在进行DDL的操作过程中需要更加的注意.
参考:
https://www.cnblogs.com/panxuejun/p/6148324.html

原文地址:https://www.cnblogs.com/ontheway1024/p/8986529.html