我有一个 RHEL Linux 服务器,我在其中安装了 mysql percona 并设置了审核。
审计记录中收到的查询具有以下格式的时间戳。
{"audit_record":{"name":"查询","record":"179295580_2024-10-03T10:56:38","timestamp":"2024-10-03T10:57:54 UTC","command_class ":"drop_table","connection_id":"2","status":0,"sqltext":"删除表 DPT","user":"abc[abc] @ localhost []","host":"本地主机","os_user":"","ip":"","db":""}}
上面的记录中,时间戳是UTC。 ""时间戳":"2024-10-03T10:57:54 UTC","
我希望它采用以下格式:“timestamp”:“2024-10-03T10:57:54Z”。
基本上我想用 Z 替换 UTC。
我尝试更改服务器的时区,但没有帮助。 请帮我解决这个问题。
谢谢你
您使用的是 Percona Server 5.7 还是 8.0?我在 Percona Server 5.7 的代码中看到,该格式是使用您显示的 UTC 后缀进行硬编码的。
https://github.com/percona/percona-server/blob/release-5.7.44-51/plugin/audit_log/audit_log.c#L152
strftime(buf, buf_len, "%FT%T UTC", gmtime_r(&t, &tm));
但在 Percona Server 8.0 中,它是用“Z”后缀硬编码的。
https://github.com/percona/percona-server/blob/8.0/plugin/audit_log/audit_log.cc#L150
strftime(buf, buf_len, "%FT%TZ", gmtime_r(&t, &tm));
因此,如果您升级,它应该是您想要的格式。
要在 Percona Server 5.7 中更改它,您必须修补 Percona Server 源代码并自行构建。