转载自:https://blog.51cto.com/13941177/2173086
注意:
安装插件的方式优缺点:
缺点:日志信息比较大,对性能影响大。
优点:对每一时刻每一用户的操作都有记录。
搭建过程:
到网站(https://bintray.com/version/files/mcafee/mysql-audit-plugin/release/1.1.7-805)下载插件audit-plugin-mysql-5.7-1.1.7-805-linux-x86_64.zip
下载地址:https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-725#files
1、把文件上传到/opt目录下
[root@edu-mysql-02 ~]# cd /opt/
[root@edu-mysql-02 opt]# unzip audit-plugin-mariadb-10.2-1.1.4-725-linux-x86_64.zip
2、登录数据库,查看存放路径
mysql> show global variables like 'plugin_dir';
[root@edu-mysql-02 opt]# cp audit-plugin-mariadb-10.2-1.1.4-725/lib/libaudit_plugin.so /usr/lib64/mysql/plugin/
[root@edu-mysql-02 opt]# cd /usr/lib64/mysql/plugin/
授权:
[root@edu-mysql-02 plugin]# chmod +x libaudit_plugin.so
[root@edu-mysql-02 plugin]# chown mysql:mysql libaudit_plugin.so
3、登录数据库进行安装
mysql> install plugin audit soname 'libaudit_plugin.so';
报错信息如下:
ERROR 1123 (HY000): Can't initialize function 'audit'; Plugin initialization function failed.
解决办法:
1)授权,加载
[root@edu-mysql-02 utils]# pwd
/opt/audit-plugin-mysql-5.7-1.1.4-725/utils
[root@edu-mysql-02 utils]# chmod +x offset-extract.sh
[root@edu-mysql-02 opt]# which mysqld
/usr/sbin/mysqld
[root@edu-mysql-02 utils]# ./offset-extract.sh /usr/sbin/mysqld
2)编辑/etc/my.cnf
plugin-load=AUDIT=libaudit_plugin.so
audit_offsets = 7824, 7872, 3632, 4792, 456, 360, 0, 32, 64, 160, 536, 7988, 4360, 3648, 3656, 3660, 6072, 2072, 8, 7056, 7096, 7080
3)重启mysql
[root@edu-mysql-02 utils]# systemctl restart mysqld.service
4、进入mysql安装
mysql> install plugin audit soname 'libaudit_plugin.so';
5、检查:
mysql> show plugins;
检查版本
mysql> show global status like 'AUDIT_version';
开启audit功能:
mysql> SET GLOBAL audit_json_file=ON;
可以查看插件有哪些可配置的参数:
mysql> show variables like '%audit%'\G;
为了保证重启数据库,配置不丢失,修改my.cnf 配置文件,将下面的配置添加到[mysqld]中,所以在配置文件中my.cnf加入参数:
总的如下:
plugin-load=AUDIT=libaudit_plugin.so
audit_offsets = 7824, 7872, 3632, 4792, 456, 360, 0, 32, 64, 160, 536, 7988, 4360, 3648, 3656, 3660, 6072, 2072, 8, 7056, 7096, 7080
audit_json_file = on
audit_record_cmds = 'insert,delete,update,create,drop,alter,grant,truncate'
查看日志:
[root@edu-mysql-02 log]# find / -name mysql-audit.json
[root@edu-mysql-02 log]# tail -f /var/lib/mysql/mysql-audit.json