Linux中 MySql设置审计及报错解决 can‘t initialize function ‘audit‘; Plugin initialization function failed

环境:

服务器:CentOS Linux release 7.4.1708 64位

MySql: 社区版5.7.35 

由于使用的是社区版MySql,没有内置审计,使用的McAfee的插件

1.下载插件
https://github.com/mcafee/mysql-audit/releases/

 选择了列表中与我的数据库匹配的版本audit-plugin-mysql-5.7-1.1.9-974-linux-x86_64.zip

 2.查找数据库插件所在文件夹

登录数据库执行以下命令

show global variables like 'plugin_dir';

如图:

 3.文件上传服务器

 解压下载好的插件压缩包,将audit-plugin-mysql-5.7-1.1.9-974-linux-x86_64/lib下 的文件libaudit_plugin.so上传到服务器刚才搜索出的目录下 ,我这里是/usr/local/mysql/lib/plugin

4.为文件赋可执行权限

执行命令

chmod a+x libaudit_plugin.so

5.安装插件

install plugin audit soname 'libaudit_plugin.so';

这里报了个错,如果正常请跳过这一步,直接进入第6步

解决报错:

(1)找到服务器mysqld地址

在服务器执行以下命令

whereis mysqld

(2)上传offset文件

将压缩包audit-plugin-mysql-5.7-1.1.9-974-linux-x86_64/utils下的offset-extract.sh上传到服务器,位置自定

(3)执行获取offsets

./offset-extract.sh /usr/local/mysql/bin/mysqld

(4) 在MySQL配置文件/etc/my.cnf中添加语句

在[mysqld]后添加以下语句(防止重启数据库后配置丢失):

plugin-load=AUDIT=libaudit_plugin.so

 audit_offsets=7832, 7880, 3640, 4800, 456, 360, 0, 32, 64, 160, 544, 7996, 4368, 3648, 3656, 3660, 6080, 2072, 8, 7064, 7104, 7088, 13480, 148, 672, 0

audit_json_file = on

audit_record_cmds = 'insert,delete,update,create,drop,alter,grant,truncate' 

 (5)重启

systemctl restart mysqld.service

6.查询插件列表

show plugins;

包含审计插件,成了!(如果这一步没有找到再执行一次安装插件的命令试试)

7.其他查询语句

查询audit版本

show global status like 'AUDIT_version'; 

查询日志存放位置

find / -name mysql-audit.json

 查看日志

tail -f /var/lib/mysql/mysql-audit.json

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值