0

我能够启用错误日志、常规查询日志、慢查询日志和二进制日志,并且能够将日志转发到 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有办法吗?

4

1 回答 1

0

1) 错误日志会自动转发到 Windows 中的事件日志。如何将其他日志也转发到事件日志?

MySQL 中没有执行此操作的功能。

2)是否可以将多行mysql日志转换为单行。

在不修改 MySQL 源代码的情况下,您无法更改慢查询日志的格式。它是硬编码的:

  ...
  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 可用于将二进制日志转换为人类可读的格式。有没有一种方法可以在不编写任何自定义脚本的情况下转换二进制文件并将其转发到 syslog?mysql或rsyslog有办法吗?

不。

但是您可以使用该mysqlbinlog工具下载远程二进制日志作为备份它们的一种方式。见https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html

于 2018-10-25T17:41:03.090 回答