MySQL社区版技术上是可以加载Percona Server中提取的audit_log.so插件,但是前提是ABI完全兼容(包括glibc、mysql版本、编译参数等)。
插件安装
官网地址: https://www.percona.com/downloads
选择对应的版本:

我当前环境是 MySQL 8.0.33 社区版,运行在 x86_64 架构、Rocky Linux 9(glibc 2.34) 上。从 Percona 下载兼容的 audit_log.so
插件用于 MySQL 社区版。
我选择下载的RPM包是:
percona-server-server-8.0.33-25.1.el9.x86_64.rpm
操作步骤:
1.下载并提取.so插件
# 准备临时目录
mkdir tmp/percona
cd /tmp/percona
# 下载RPM
wget -O percona-server-server-8.0.33-25.1.el9.x86_64.rpm "https://downloads.percona.com/downloads/Percona-Server-8.0/Percona-Server-8.0.33-25/binary/redhat/9/x86_64/percona-server-server-8.0.33-25.1.el9.x86_64.rpm?_gl=1*8a576m*_gcl_au*OTc1MjM2MDQwLjE3NDU5MDE4ODY."
# 将.rpm包安装包解压为普通文件结构,不进行安装。
rpm2cpio percona-server-server-80-8.0.36-28.1.el8.x86_64.rpm | cpio -idmv
解压后的文件目录如下:

解压命令的解析:
rpm2cpio percona-server-server-80-8.0.36-28.1.el8.x86_64.rpm
把 .rpm
包转为 cpio 格式的标准归档流类似于 .tar
,但是 RPM 内部的封装格式本质作用:让我们可以用 cpio
提取里面的所有文件
|
管道,将上面转换出的归档内容,传给下一条命令。
cpio -idmv
:这个命令是从 cpio
输入流中 解包并还原文件结构:
-i | |
-d | |
-m | |
-v |
注意事项:不要在 /
(根目录)或系统目录下运行 rpm2cpio
解包!
否则你解包出来的 /usr/bin
、/etc
文件可能会和系统目录混在一起,清理困难且危险。
2.找到audit_log.so
ls ./usr/lib64/mysql/plugin/audit_log.so
3.拷贝到你的MySQL插件目录
# mysql -uroot -p --socket=/data/mysql/run/mysql.sock -p -e "SHOW VARIABLES LIKE 'plugin_dir';"
Enter password:
+---------------+--------------------------+
| Variable_name | Value |
+---------------+--------------------------+
| plugin_dir | /usr/lib64/mysql/plugin/ |
+---------------+--------------------------+
# 将audit_log.so拷贝到MySQL插件目录,并赋予相应权限
sudo cp ./usr/lib64/mysql/plugin/audit_log.so /usr/lib64/mysql/plugin/
sudo chown mysql:mysql /usr/lib64/mysql/plugin/audit_log.so
sudo chmod 644 /usr/lib64/mysql/plugin/audit_log.so
4. 安装插件
# 登录mysql后执行如下命令
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
# 查看audit插件是否安装成功
SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%';

5.配置my.cnf,重启mysqld服务
[mysqld]
plugin-load-add=audit_log.so
audit_log_format=JSON
audit_log_policy=ALL
audit_log_file=/data/mysql/audit.log
audit_log_rotate_on_size=104857600
audit_log_rotations=10
#systemctl restart mysqld
6.查看审计日志内容
tail -f /data/mysql/log/audit.log | jq


点个“赞 or 在看” 你最好看!

👇👇👇 谢谢各位老板啦!!!
文章转载自PostgreSQL运维技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




