过去从Mysql官方自带general.log日志的相比其他插件性能是最差的,我们考虑参考行业中较好的插件是MariaDB Audit Plugin, 可惜并不兼容mysql 5.7与mysql 8.0以上版本。
采用github开源项目,该项目支持MySQL 5.7和MySQL 8.0两个分支。
https://github.com/Vettabase/audit-plugin-for-mysql
安装步骤如下:
找到插件目录,并将server_audit.so
复制到插件目录:
mysql> show variables like 'plugin_dir';
+---------------+--------------------------+
| Variable_name | Value |
+---------------+--------------------------+
| plugin_dir | /usr/lib64/mysql/plugin/ |
+---------------+--------------------------+
1 row in set (0.00 sec)
开启插件:
在my.cnf
配置文件中添加plugin_load_add = server_audit.so
配置项并重启MySQL生效,或者在MySQL命令行控制台中运行INSTALL PLUGIN server_audit SONAME 'server_audit.so';
使插件立即生效。
检查审计状态:
mysql> show variables like '%server_audit%';
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| server_audit_events | |
| server_audit_excl_users | |
| server_audit_file_path | server_audit.log |
| server_audit_file_rotate_now | OFF |
| server_audit_file_rotate_size | 1000000 |
| server_audit_file_rotations | 9 |
| server_audit_incl_users | |
| server_audit_loc_info | |
| server_audit_logging | ON |
| server_audit_output_type | file |
| server_audit_query_log_limit | 1024 |
| server_audit_syslog_facility | LOG_USER |
| server_audit_syslog_ident | mysql-server_auditing |
| server_audit_syslog_info | |
| server_audit_syslog_priority | LOG_INFO |
+-------------------------------+-----------------------+
15 rows in set (0.00 sec)
server_audit.log
默认在datadir
目录下。