binlog 日志需要占用存储空来进行保留,并且需要设置保留时间,最长 为 7 天,托管RDS开启审计日志(audit/server_audit.log)可以存储在 CloudWatch logs 中,保留时间会更长。
1、需要拥有自定义的选项组,并具有MARIADB_AUDIT_PLUGIN,创建自定义选项组

2、添加选项--选项名称“MARIADB_AUDIT_PLUGIN”--点击“添加选项”


3、修改 RDS MySQL 数据库的选项组,并开启审计日志

1、在 MySQL 里面创建表,再插入一条数据,查看 binlog 是否有记录日志信息
#创建表
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
#插入一条数据
mysql> INSERT INTO runoob_tbl
-> (runoob_title, runoob_author, submission_date)
-> VALUES
-> ("学习 MySQL", "菜鸟教程", NOW()); |

#下载 binlog 日志并查看
mysqlbinlog \
--read-from-remote-server \
--host=ggtest-binlog.ck7rxdxlrkv1.ap-southeast-1.rds.amazonaws.com \
--port=3306 \
--user admin \
--password \
--verbose \
--result-file=/tmp/gg.text \
mysql-bin-changelog.000673
cat /tmp/gg.text |


2、查看 RDS MySQL 控制台中的审计日志

3、开启审计日志,使用默认的选项组,选项设置中“SERVER_AUDIT_EVENTS”的默认参数是“CONNECT, QUERY”
CONNECT:记录成功和失败的数据库连接以及数据库断开连接。
QUERY:记录针对数据库运行的所有查询文本。(DDL、DML、DCL)
开启 binlog会基于不同的模式进行判断是否保存,有“ROW、STATEMENT 或 MIXED”三种模式
STATEMENT:执行啥记录啥
ROW:影响几行生成几条语句
MIXED:server层智能选择STATEMENT或者ROW
配置 MySQL 二进制日志记录:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html
MySQL binlog的3种格式对比(statement,row,mixed):https://blog.csdn.net/wang0907/article/details/126120638
MySQL中的binlog的作用是什么?:https://blog.csdn.net/weixin_39661353/article/details/113221853
RDS for MySQL的日志轮换和保留:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.LogFileSize.html#USER_LogAccess.MySQL.LogFileSize.retention
MariaDB 审计插件选项参数:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html
序号 | 判定描述 | 自我判定(是/否) |
|---|---|---|
1 | 在各搜索引擎中是否能找到知识信息(包括但不限于Google、百度、Bing) | 是 |
2 | 是否需要代码集成开发 | 否 |