biglog简介
binlog 就是binary log,二进制日志文件,这个文件记录了mysql所有的dml操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。
binlog使用详细步骤
1.修改mysql配置文件
vi /etc/my.cnf
[mysqld]下增加如下配置
log-bin=mysql-bin server-id=1
说明:log-bin
指定了binlog的前缀名,server-id
必须唯一且不同于其他mysql服务器
2.重启mysql
centos重启示例
systemctl restart mysqld
3.操作数据库
往数据库中的某个表新增一条记录或者创建表都会往biglog文件中写入内容
4.查看binglog
cd /var/lib/mysql/mysql-bin ll -la
可以看到会有类似mysql-bin.000001的文件生成
drwxr-x--x. 6 mysql mysql 4096 3月 13 22:44 . drwxr-xr-x. 27 root root 4096 8月 29 2023 .. -rw-r-----. 1 mysql mysql 56 8月 29 2023 auto.cnf -rw-------. 1 mysql mysql 1680 8月 29 2023 ca-key.pem -rw-r--r--. 1 mysql mysql 1112 8月 29 2023 ca.pem -rw-r--r--. 1 mysql mysql 1112 8月 29 2023 client-cert.pem -rw-------. 1 mysql mysql 1680 8月 29 2023 client-key.pem -rw-r-----. 1 mysql mysql 283 3月 13 22:40 ib_buffer_pool -rw-r-----. 1 mysql mysql 12582912 3月 13 22:42 ibdata1 -rw-r-----. 1 mysql mysql 50331648 3月 13 22:42 ib_logfile0 -rw-r-----. 1 mysql mysql 50331648 8月 29 2023 ib_logfile1 -rw-r-----. 1 mysql mysql 12582912 3月 13 22:42 ibtmp1 drwxr-x---. 2 mysql mysql 4096 8月 29 2023 mysql -rw-r-----. 1 mysql mysql 962 3月 13 22:42 mysql-bin.000001 -rw-r-----. 1 mysql mysql 19 3月 13 22:40 mysql-bin.index srwxrwxrwx. 1 mysql mysql 0 3月 13 22:40 mysql.sock -rw-------. 1 mysql mysql 5 3月 13 22:40 mysql.sock.lock drwxr-x---. 2 mysql mysql 8192 8月 29 2023 performance_schema -rw-------. 1 mysql mysql 1680 8月 29 2023 private_key.pem -rw-r--r--. 1 mysql mysql 452 8月 29 2023 public_key.pem -rw-r--r--. 1 mysql mysql 1112 8月 29 2023 server-cert.pem -rw-------. 1 mysql mysql 1680 8月 29 2023 server-key.pem drwxr-x---. 2 mysql mysql 8192 8月 29 2023 sys drwxr-x---. 2 mysql mysql 58 3月 13 22:41 test
直接查看binlog可以看到有很多乱码
正确查看方式是使用命令查看
4.1mysqlbinlog示例:
mysqlbinlog -v /var/lib/mysql/mysql-bin.000001
也可以把内容写入到文件中
4.2mysqlbinlog将biglog写入文件示例:
mysqlbinlog -v /var/lib/mysql/mysql-bin.000001 > /opt/mysql-bin-000001.txt
示例中将binlog写入了文件 /opt/mysql-bin-000001.txt中
此时,查看文件/opt/mysql-bin-000001.txt就没有乱码了,但是和执行sql还是有差异的
4.2.1创建表生成的biglog示例:
#240313 22:41:55 server id 1 end_log_pos 667 crc32 0x5b0f29d8 query thread_id=3 exec_time=0 error_code=0 use `test`/*!*/; set timestamp=1710340915/*!*/; create table `test`.`t_table` (^m `id` int(0) not null,^m `name` varchar(255) null,^m `address` varchar(255) null,^m `create_time` datetime(0) null,^m `update_time` datetime(0) null,^m primary key (`id`)^m )
说明,第一行是时间戳,240313表示2024年3月13日
22:41:55表示具体时间
下面是创建表语句
4.2.2插入表生成的biglog示例
#240313 22:42:19 server id 1 end_log_pos 931 crc32 0x038eed84 write_rows: table id 101 flags: stmt_end_f binlog ' s7vxzrmbaaaapaaaagadaaaaaguaaaaaaaeabhrlc3qab3rfdgfibguabqmpdxisbv8a/waaab7d vv1g s7vxzr4baaaaqwaaakmdaaaaaguaaaaaaaeaagaf/+abaaaachpoyw5nc2fub2jlawppbmezsttq jpmy22qrho2oaw== '/*!*/; ### insert into `test`.`t_table` ### set ### @1=1 ### @2='zhangsan' ### @3='beijing' ### @4='2024-03-13 22:42:14' ### @5='2024-03-13 22:42:17' # at 931 #240313 22:42:19 server id 1 end_log_pos 962 crc32 0xb2c0a6e7 xid = 62 commit/*!*/;
4.2.3更新表biglog示例
#240313 23:04:34 server id 1 end_log_pos 1558 crc32 0xfbe11994 update_rows: table id 102 flags: stmt_end_f binlog ' gsdxzrmbaaaapaaaakufaaaaagyaaaaaaaeabhrlc3qab3rfdgfibguabqmpdxisbv8a/waaab6l yfeh gsdxzr8baaaacqaaabygaaaaagyaaaaaaaeaagaf///gaqaaaah6agfuz3nhbgdizwlqaw5nmblb ao6zsttqkeabaaaadhpoyw5nc2fultg4obbizwlqaw5nlwnoyw95yw5nmblbao6zsttxipqz4fs= '/*!*/; ### update `test`.`t_table` ### where ### @1=1 ### @2='zhangsan' ### @3='beijing' ### @4='2024-03-13 22:42:14' ### @5='2024-03-13 22:42:17' ### set ### @1=1 ### @2='zhangsan-888' ### @3='beijing-chaoyang' ### @4='2024-03-13 22:42:14' ### @5='2024-03-13 23:04:34'
特别说明:where与set之间都是原始值,set后面都是更新后的值
到此这篇关于mysql 5.7开启并查看biglog的详细教程的文章就介绍到这了,更多相关mysql 5.7开启并查看biglog内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论