mysqlbinlog查看SQL执行日志
- 2024-09-28 09:42:00
- 丁国栋
- 原创 51
MySQL的二进制日志( binlog)记录了对数据库进行修改的所有操作,例如UPDATE, DELETE, INSERT INTO, REPLACE INTO等。通过mysqlbinlog命令可以查看binlog日志文件的内容,从而知道对数据库做了哪些修改。
mysqlbinlog -vv --base64-output=decode-rows /var/log/mysql/mysql-bin.002775 | more
mysqlbinlog 读取二进制日志文件时支持按照时间筛选,--start-datetime='2004-12-25 11:25:56' --stop-datetime='2004-12-25 11:25:56'
另外mysqlbinlog也支持在线查询数据库服务器上的binlog,此时需要使用mysqlbinlog登录到数据库再查看,例如:先通过登录数据库查询有哪些日志,show binary logs;
再使用mysqlbinlog导出二进制日志到本地:mysqlbinlog -h xxx -u xxx -p --read-from-remote-server --raw mysql-bin.002775 > /tmp/mysql-bin.002775
可以直接使用mysqlbinlog
命令查看binlog文件的内容,结合管道和head命令可以很容易的找到当前binlog文件的position(pos)位置。
例如有以下示例:
# mysqlbinlog binlog.000536 | head # The proper term is pseudo_replica_mode, but we use this compatibility alias # to make the statement usable on server versions 8.0.24 and older. /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #241014 8:34:34 server id 1 end_log_pos 126 CRC32 0x0bcfb8c1 Start: binlog v 4, server v 8.0.35-0ubuntu0.23.04.1 created 241014 8:34:34 at startup ROLLBACK/*!*/; BINLOG ' GmcMZw8BAAAAegAAAH4AAAAAAAQAOC4wLjM1LTB1YnVudHUwLjIzLjA0LjEAAAAAAAAAAAAAAAAA #
从 end_log_pos 可以看出,当前binlog文件的pos位置就是126.
--
发表评论