10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

MySQL 8.0参考手册// 选择通用查询日志和慢速查询日志输出目的地

5.4.1之前选择通用查询日志和慢速查询日志输出目的地

MySQL服务器提供灵活的控制目标输出写入到通用查询日志和慢速查询日志,如果这些日志启用。可能的目的地是日志文件或日志条目general_logslow_logmysql系统数据库。文件输出,表输出,或者两个都可以选择。

在服务器启动日志控制

log_output系统变量指定日志输出的目的地。设置这个变量本身不启用日志;他们必须单独启用。

  • 如果log_output在启动时没有指定,缺省日志目的地吗文件

  • 如果log_output指定在启动时,它的值是一个列表选择一个或多个以逗号分隔的单词(日志表),文件(日志文件),或没有一个(不要日志表或文件)。没有一个如果存在,优先于任何其他说明符。

general_log系统变量控制日志一般为选中的日志目的地查询日志。如果指定在服务器启动时,general_log接受一个可选参数的1或0来启用或禁用日志。指定非默认文件名文件日志记录、设置general_log_file变量。类似地,slow_query_log变量控制日志为选定的目的地和慢速查询日志设置slow_query_log_file指定一个文件名文件日志记录。如果启用了日志,服务器打开相应的日志文件和启动消息写道。然而,进一步的查询日志文件不会,除非发生文件选择日志目的地。

例子:

在运行时日志控制

与日志表和文件相关的系统变量启用运行时控制日志记录:

  • log_output变量显示当前日志目的地。它可以在运行时修改改变目的地。

  • general_logslow_query_log变量显示通用查询日志和慢速查询日志是否启用()或禁用()。你可以设置这些变量在运行时控制是否启用了日志。

  • general_log_fileslow_query_log_file变量表示的名称一般查询日志和慢速查询日志文件。你可以设置这些变量在服务器启动或在运行时改变日志文件的名称。

  • 禁用或启用通用查询日志记录当前会话,设置会话sql_log_off变量来。(这个假设启用了通用查询日志本身)。

日志表的好处和特点

表的使用日志输出提供了以下好处:

  • 日志条目有一个标准的格式。显示当前日志表的结构,使用这些语句:

    显示创建表mysql.general_log;显示创建表mysql.slow_log;
  • 日志内容通过SQL语句来访问。这使得使用查询,只选择那些满足特定条件的日志条目。例如,选择与一个特定的客户端相关的日志内容(可用于识别有问题的查询从客户端),更容易做到这一点比一个日志文件使用日志表。

  • 日志可以通过任何远程访问客户端可以连接到服务器和发出查询(如果客户有适当的日志表特权)。不需要登录到服务器主机和直接访问文件系统。

日志表实现具有以下特点:

  • 一般来说,日志表的主要目的是为用户提供一个接口观察服务器的运行时执行,不要干扰它的运行时执行。

  • 创建表,ALTER TABLE,删除表是有效的操作日志表。为ALTER TABLE删除表,日志表中不能使用,必须禁用,如后所述。

  • 默认情况下,日志表使用CSV以逗号分隔值格式写入数据的存储引擎。用户访问. csv包含日志表数据的文件,这些文件很容易导入电子表格等其他程序可以处理CSV输入。

    可以改变使用日志表MyISAM存储引擎。你不能使用ALTER TABLE改变一个日志表的使用。日志必须先被禁用。没有引擎以外CSVMyISAM日志表是合法的。

    日志表和打开的文件太多错误。如果您选择作为一个使用日志目的地和日志表CSV存储引擎,你会发现禁用和启用一般查询日志或慢速查询日志反复在运行时的结果在一个打开的文件描述符的数量. csv文件,可能导致打开的文件太多错误。为了解决这个问题,执行刷新表或保证的价值open_files_limit大于的价值table_open_cache_instances

  • 禁用日志记录,这样你就可以改变(或下降)日志表,您可以使用以下策略。例子使用了通用查询日志;慢速查询日志的过程是相似的,但使用slow_log表和slow_query_log系统变量。

    设置@old_log_state = @@GLOBAL.general_log;集全球general_log =“关闭”;ALTER TABLE mysql。general_logENGINE = MyISAM; SET GLOBAL general_log = @old_log_state;
  • 截断表是一个有效的操作日志表。它可以用于日志条目过期。

  • 重命名表是一个有效的操作日志表。您可以自动重命名一个日志表(例如执行日志轮换)使用以下策略:

    使用mysql;删除表如果存在general_log2;创建表general_log2像general_log;重命名表general_log general_log_backup, general_log2 general_log;
  • 检查表是一个有效的操作日志表。

  • 锁表不能使用日志表。

  • 插入,删除,更新不能使用日志表。这些操作是只允许在内部服务器本身。

  • 刷新表读锁和的状态read_only系统变量没有影响日志表。服务器可以写日志表。

  • 条目写入到日志表未写入二进制日志,从而不复制副本。

  • 刷新日志表或日志文件,使用刷新表刷新日志,分别。

  • 日志表的分区是不允许的。

  • 一个,mysqldump转储包括语句来创建这些表,这样他们不会失踪重载转储文件。日志表内容不倾倒。