MySQL 5.1.73 更改 general_log 文件的时间戳格式

MySQL 5.1.73 Change timestamp format for general_log file

我正在尝试更改 MySQL 5.1.73 生成的通用日志文件的格式。

“event_time 的实际时间戳格式是:

"210909 10:32:12 12 Connect user@localhost on database"

是否可以更改其时间戳格式?

我希望格式遵循以下格式:2015-04-14 22:52:11 或什至包含遵循 RFC 3339 的时区。“1937-01-01T12:00:27.87+00:2” (UTC)

我通过在 rsyslog 中添加 mysql-general.log 文件作为 inputFile 找到了解决方案。应用模板允许我用正确的时间戳格式重写日志。

感谢您的回复/评论

另一种解决方案,我认为非常有用,尤其是当您无法重新启动 MySQL 服务器时,正在将 log 发送到 table mysql.general_log

按照以下步骤操作:

 1. SET GLOBAL general_log=1; or SET GLOBAL general_log=ON;
 2. SET GLOBAL log_output='TABLE';

如果您缺少 general_log table 您可以创建:

CREATE TABLE `general_log` (
   `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `thread_id` bigint(21) unsigned NOT NULL,
   `server_id` int(10) unsigned NOT NULL,
   `command_type` varchar(64) NOT NULL,
   `argument` mediumtext NOT NULL
  ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'

您会发现如下结果:

测试于 10.4.17-MariaDB