我能够启用错误日志,常规查询日志,慢速查询日志和二进制日志,并且能够将日志转发到Syslog。关于日志记录,我有几个问题。
1)错误日志将自动转发到Windows中的事件日志。如何将其他日志也转发到事件日志?
2)是否可以将多行mysql日志转换为单行。
3)是否可以在日志文件的开头添加一些标头,或者在每行日志的开头添加一些标签,以便于识别哪个日志文件。
4)在慢速查询日志中,注释了一些信息。使用rsyslog转发时,这些注释行会在所有Unix系统中转发吗?
# User@Host: debian-sys-maint[debian-sys-maint] @ localhost []
# Query_time: 0.000297 Lock_time: 0.000220 Rows_sent: 0 Rows_examined: 0
SET timestamp=1539924163;
select count(*) into @discard from `information_schema`.`EVENTS`;
5)mysqlbinlog可用于将二进制日志转换为人类可读的格式。有没有一种方法可以转换二进制文件并将其转发到syslog,而无需编写任何自定义脚本? mysql或rsyslog中有办法吗?
答案 0 :(得分:0)
1)错误日志将自动转发到Windows中的事件日志。 如何将其他日志也转发到事件日志?
MySQL中没有执行此操作的功能。
2)是否可以将多行mysql日志转换为单行。
如果不修改MySQL源代码,就无法更改慢速查询日志的格式。是hard-coded:
...
if (my_b_printf(&log_file,
"# Query_time: %s Lock_time: %s"
" Rows_sent: %lu Rows_examined: %lu\n",
query_time_buff, lock_time_buff,
(ulong)thd->get_sent_row_count(),
(ulong)thd->get_examined_row_count()) == (uint)-1)
goto err;
...
此外,对于记录的每个查询的其他行。
但是您可以从PERFORMANCE_SCHEMA获取相关的查询性能信息,甚至可以按查询类型获取摘要。有优缺点。例如,请参见以下博客:https://www.percona.com/blog/2014/02/11/performance_schema-vs-slow-query-log/
3)是否可以在日志文件中添加一些标头或在 每条日志行的开头,以便轻松识别 日志文件。
并非没有更改源代码。
4)在慢速查询日志中,注释了一些信息。什么时候 使用rsyslog转发,将这些注释行转发到 所有的Unix系统?
您不能将慢查询日志转发到syslog。
5)mysqlbinlog可用于将二进制日志转换为人类可读 格式。有没有一种方法可以转换二进制文件并转发 它到系统日志,而无需编写任何自定义脚本?有办法吗 mysql还是rsyslog?
否。
但是您可以使用mysqlbinlog
工具来下载远程二进制日志,作为备份它们的一种方式。参见https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html