【问题标题】:How to send logs to table so that we can view them in Workbench?如何将日志发送到表,以便我们可以在 Workbench 中查看它们?
【发布时间】:2011-11-07 07:42:44
【问题描述】:

在日志选项卡上,它显示:

您当前的日志目标设置为文件。 要在 Workbench 中查看日志,必须将它们配置为发送到 TABLE。 此选项仅在 MySQL 5.1 版及更高版本中可用。 更多信息请阅读http://dev.mysql.com/doc/refman/5.1/en/logtables.html

我是 MYSQL 新手,目前使用 Workbench。我需要查看查询日志。能否请您一步一步清楚地告诉我如何使日志选项卡显示查询日志?

谢谢

【问题讨论】:

  • 嘿,再说一次,如果他们当前正在登录到 FILE,您可以从服务器下载文件并在那里查看日志。但我猜你想在 Workbench 中查看日志,而 Workbench 只能与表格一起使用。

标签: mysql logging mysql-workbench


【解决方案1】:

在 Workbench 中管理您的服务器时,请转到“配置”下的“选项文件”页面。然后转到“日志文件”选项卡。您可以在那里配置几个选项来启用日志。与记录到表相关的一项称为日志输出(显示在“高级日志选项”下)。您必须将其设置为 TABLE。然后启用您需要的日志:

  • 常规日志(记录对数据库的所有查询),位于“激活日志记录”下(确保已选中)。
  • 慢速日志(记录完成时间超过您设置的某个阈值的所有查询),在“慢速查询日志选项”下(选中选项 slow-query-log 并在 longquerytime 字段中以秒为单位设置阈值)。

请记住在完成更改后单击“应用”按钮并重新启动服务器以使其重新加载新设置。

请记住,错误日志不能记录在表中。即将发布的 Workbench (5.2.36) 版本也将支持日志文件。

【讨论】:

  • 谢谢,它有效。但是,我可以让它作为实时日志运行吗? (不需要刷新即可查看新日志)。有没有办法消除“SELECT count(*) AS count FROM mysql.general_log”?
【解决方案2】:

通常您应该使用特殊参数启动 MySQL 服务器或编辑配置文件,但您也可以在正在运行的服务器上更改此设置。之后不要忘记在配置文件中设置变量,以便服务器重启后设置仍然存在。

来自MySQL Documentation: Log-destinations

运行时的日志控制。几个系统变量与 记录表和文件并启用对日志记录的运行时控制:

全局 log_output 系统变量指示当前日志记录 目的地。它可以在运行时修改以更改目的地。

全局 general_log 和 slow_query_log 变量指示是否 通用查询日志和慢查询日志启用(ON)或禁用 (离开)。您可以在运行时设置这些变量来控制是否 日志已启用。

全局 general_log_file 和 slow_query_log_file 变量 表示通用查询日志和慢查询日志文件的名称。 从 MySQL 5.1.29 开始,您可以在服务器启动时设置这些变量或 在运行时更改日志文件的名称。在 MySQL 5.1.29 之前, 您只能在运行时设置这些变量,但 --log 和 --log-slow-queries 选项可以在启动时与文件名参数一起提供,以更改日志文件名的默认值。

会话 sql_log_off 变量可以设置为 ON 或 OFF 以禁用 或为当前连接启用常规查询日志记录。

所以通常你会想要设置

set @@global.log_table = 'TABLE';

【讨论】:

  • 在你最喜欢的 MySQL 客户端中。控制台 (mysql)、PHPMyAdmin、MySQL Workbench、MySQL 查询浏览器、Toad、...
猜你喜欢
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-20
  • 2019-10-29
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
相关资源
最近更新 更多