Error number: 4051; Symbol: ER_WARN_AUDIT_LOG_FORMAT_UNIX_TIMESTAMP_ONLY_WHEN_JSON; SQLSTATE: HY000
Message: audit_log_format_unix_timestamp is applicable only when audit_log_format = JSON.
MySQL错误4051, ER_WARN_AUDIT_LOG_FORMAT_UNIX_TIMESTAMP_ONLY_WHEN_JSON,属于SQLSTATE HY000,表示只有在audit_log_format设置为JSON时,才能使用unix_timestamp。
错误说明:
MySQL错误4051, ER_WARN_AUDIT_LOG_FORMAT_UNIX_TIMESTAMP_ONLY_WHEN_JSON,表示只有当audit_log_format设置为JSON格式时,MySQL才能够使用unix_timestamp函数;否则,MySQL就会报出ER_WARN_AUDIT_LOG_FORMAT_UNIX_TIMESTAMP_ONLY_WHEN_JSON错误。
日志记录是MySQL中不可缺少的一项功能,audit_log_format参数用于控制MySQL生成的审计日志文件的格式。如果audit_log_format手动设置为非JSON格式,但又使用了unix_timestamp函数的话,MySQL就会抛出此错误。
解决方法:
当抛出ER_WARN_AUDIT_LOG_FORMAT_UNIX_TIMESTAMP_ONLY_WHEN_JSON错误时,可以通过以下步骤来解决:
1.检查audit_log_format的配置,确保其设置为JSON格式,即:
SET GLOBAL audit_log_format = ‘JSON’;
2.检查是否存在使用unix_timestamp函数的地方,然后修改成对应的其他时间函数。
3.如果audit_log_format不是JSON格式且又无法修改,那么可以将MySQL运行期间动态设定 audit_log_format,这样就可以解决这个错误。