获取MySQL查询日志

获取MySQL查询日志

Oracle 的 MySQL 社区版不带审计插件,要想使用审计功能,你可以用企业版,不过这需要 money 。(作为白嫖党,今天介绍一下怎么使用社区版,还能获取查询记录)


一、准备审计插件

审计插件来源于 MariaDB
注意:使用 MariaDB 与 MySQL 对应的版本

其对应关系
MariaDB 5.5 对应 MySQL 5.5
5.5以下的版本都是上述对应关系
MariaDB 10.0 对应 MySQL 5.6
MariaDB 10.1 对应 MySQL 5.7

MariaDB 是 MySQL 的一个分支版本,可以很好的兼容。

获取方法一

MariaDB官网上下载 Linux 的通用版本,解压后获得审计插件 /lib/plugin/server_audit.so

获取方法二

# 安装 MariaDB 的 docker 环境,
# 查找 MariaDB 的容器ID <MariaDB_ID>
docker ps
# 进入容器
docker exec –it <MariaDB_ID> /bin/bash 
# 查找 server_audit.so 所在位置 <path/server_audit.so>
find / -name server_audit.so
# 把插件拷贝至宿主机根目录
docker cp <MariaDB_ID>:/<path/server_audit.so> /

二、将插件移动至 MySQL 插件目录

# 查找 MySQL 插件目录 <mysql_plugin_path>
find / -name plugin
# 移动插件至 MySQL 插件目录
mv /server_audit.so <mysql_plugin_path>
# 设置插件权限
chmod 755 <mysql_plugin_path>/server_audit.so

三、关闭SELinux

# 临时关闭
setenforce 0
# 永久关闭
vi /etc/selinux/config
...
SELINUX=disabled
...

如果不关闭,在 MySQL 加载插件时会出现 cannot open shared object file: Permission denied 错误。

四、设置MySQL

# 进入 MySQL
mysql –u<user> -p<passwd>
...
# 以下内容请于MySQL交互界面设置
# 加载、使用插件
install plugin server_audit SONAME 'server_audit.so';
SET GLOBAL server_audit_logging=ON;
SET GLOBAL server_audit_events='connect,query';
SET GLOBAL server_audit_file_rotate_now=ON;
...

为了重新启动后也能生效,可以在 MySQL 的配置文件添加相应的设置。


总结

以上就是如何利用 MariaDB 的审计插件来审计 MySQL 的查询日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值