One can log connect
and quit
command by using mysql-audit-plugin.
- Find the right version from mysql-audit-plugin release, I used mysql 5.7, so I used
audit-plugin-percona-5.7-1.1.7-805-linux-x86_64.zip
.
- relocate the downloaded
so
file to the place given by mysqladmin variables | grep plugin_dir
.
mysql>install plugin audit soname 'libaudit_plugin.so'
- turning on log function,
mysql>set global audit_json_file=ON
, by default it logs all successful operations. by setting set global audit_record_cmds='quit,connect'
it logs only connects and quits I suppose, according to mysql-audit-plugin configuration.
This is how it looks in file for login and logout:
{"msg-type":"activity","date":"1543740612328","thread-id":"1015112","query-id":"3045222","user":"root","priv_user":"skip-grants user","ip":"172.28.15.10","host":"172.28.15.10","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"11575","_client_version":"5.6.40","_platform":"x86_64","program_name":"mysql"},"cmd":"Quit","query":"Quit"}
{"msg-type":"activity","date":"1543740724627","thread-id":"1015113","query-id":"0","user":"root","priv_user":"skip-grants user","ip":"172.28.15.10","host":"172.28.15.10","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"11863","_client_version":"5.6.40","_platform":"x86_64","program_name":"mysql"},"cmd":"Connect","query":"Connect"}
{"msg-type":"activity","date":"1543740724629","thread-id":"1015113","query-id":"3045223","user":"root","priv_user":"skip-grants user","ip":"172.28.15.10","host":"172.28.15.10","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"11863","_client_version":"5.6.40","_platform":"x86_64","program_name":"mysql"},"rows":"1","status":"0","cmd":"select","query":"select @@version_comment limit 1"}
As of MySQL 5.5.28, MySQL Enterprise Edition includes MySQL Enterprise Audit, implemented using a server plugin named audit_log.
Only enterprising version has it.