前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL中的general log日志

MySQL中的general log日志

原创
作者头像
俗可耐
修改2019-03-19 19:36:01
9.8K1
修改2019-03-19 19:36:01
举报
文章被收录于专栏:俗人笔记

general log即General Query Log,记录了mysql服务器的操作。当客户端连接、断开连接、接收到客户端的SQL语句时,会向general log中写入日志。开启general_log会损失一定的性能,但是在开发、测试环境下开启日志,可以帮忙我们加快排查出现的问题。

如何开启

开启开关

general_log默认是没有启用的。

general-log-default.png
general-log-default.png

可以通过修改配置文件my.cnf(Linux)/my.ini(Windows),在mysqld下面增加或修改(如已存在配置项)general_log的值为1,修改后重启MySQL服务即可生效。

也可以通过在MySQL终端执行set global general_log = ON来开启general log,此方法可以不用重启MySQL。

general_log的值是全局生效的,那么怎么仅关闭当前Session的日志记录呢,答案就是在当前session中执行set SQL_LOG_OFF=ON,此值默认为OFF,即开启日志记录。此操作本身会被记录到general_log文件中,但当前session的后续操作就不会再被记录到日志文件中。

日志位置

可以通过参数general_log_file来设置日志的路径。

  1. 默认日志的目录是mysql的data目录,文件名默认为主机名.log
  2. 如果general_log_file仅指定了文件名,那么日志路径为data目录下该文件名指定的文件
  3. 如果general_log_file指定了完整的路径
    1. 如果路径目录存在,则日志文件就是general_log_file指定路径的文件
    2. 如果路径目录不存在,则general_log无法开启,即使general_log参数的值配置为开也不行。

日志文件内容

如下图是日志文件的示例内容

general-query-log-sample.png
general-query-log-sample.png

各列说明

  • Time 日志记录的时间
  • Id 进程ID,可以通过show processlist命令查看
  • Command 执行的命令
  • Argument 命令参数

关于Command

  • Connect 就是客户端连接到服务端的记录,参数里会记录用户以及连接的协议
  • Query 查询/更新/删除记录/删除表等
  • Init DB 使用命令use选择库时的记录
  • Quit 断开连接

当然还有很多其他的命令,一般都是可以通过名字直接看出是什么操作的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何开启
    • 开启开关
      • 日志位置
      • 日志文件内容
        • 各列说明
          • 关于Command
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档