千家信息网

mysql中general_log日志知识点有哪些

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要为大家展示了"mysql中general_log日志知识点有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"mysql中general_lo
千家信息网最后更新 2025年11月07日mysql中general_log日志知识点有哪些

这篇文章主要为大家展示了"mysql中general_log日志知识点有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"mysql中general_log日志知识点有哪些"这篇文章吧。

以下操作演示都是基于mysql5.6.36版本:

工作中经常遇到这样的问题:mysql数据访问能量很大,想要从sql方面优化。研发经常会问到能看到哪些SQL执行比较频繁吗?回道:不能哦,只能看到当前正在运行的SQL和慢日志里记录的SQL。因为为了性能考虑,一般general log不会开启。slow log可以定位一些有性能问题的sql,而general log会记录所有的SQL。然而有时候生产上的mysql出现性能问题,短时间开启general log,来获取sql执行的情况,对排查和分析mysql的性能问题,还是有很大的帮助的。或者是有时候,不清楚程序执行了什么sql语句,但是又要排除错误,找不到原因的情况下,也是可以短暂的开启这个general log日志的。

mysql5.0版本,如果要开启slow log、general log,需要重启,从MySQL5.1.6版开始,general query log和slow query log开始支持写到文件或者数据库表两种方式,并且日志的开启,输出方式的修改,都可以在Global级别动态修改。

开启general log有很多的方式。

下面简单介绍和演示下:

方法一:更改my.cnf配置文件

[root@git-server ~]# grep general_log /etc/my.cnfgeneral_log = 1general_log_file = /tmp/general.log

重新启动mysql,这个操作相当于是永久生效。当然这种方式是不允许在生产上采用的。因为要重启mysql,会中断mysql的业务。同时general.log会记录所有的关于mysql的DDL和DML语句,非常消耗资源,一般都是在协助排除mysql故障时,临时短暂的开启几分钟。事后都要关闭的。

方法二:在mysql命令控制台操作

需要root用户才有访问此文件的权限

默认这个日志是被关闭掉的。

mysql> show global variables like '%general%';+------------------+---------------------------------+| Variable_name  | Value              |+------------------+---------------------------------+| general_log   | OFF               || general_log_file | /data/mysql/data/git-server.log |+------------------+---------------------------------+2 rows in set (0.00 sec)mysql>

有时需要临时开启MySQL的全局general_log,可以登录mysql直接设置日志的路径并开启general_log

mysql> set global general_log_file='/tmp/general_log';Query OK, 0 rows affected (0.00 sec)mysql> set global general_log=on;Query OK, 0 rows affected (0.02 sec)mysql> show global variables like '%general%';+------------------+------------------+| Variable_name  | Value      |+------------------+------------------+| general_log   | ON        || general_log_file | /tmp/general_log |+------------------+------------------+2 rows in set (0.00 sec)mysql> [root@git-server ~]# tailf /tmp/general_log180717 22:55:51   2 Query show databases180717 22:56:04   2 Query SELECT DATABASE()      2 Init DB  test180717 22:56:14   2 Query select * from student3

在使用完后可以直接set global general_log=off;关闭这个日志

方法三:将日志保存在mysql数据库general_log表中

mysql> set global log_output='table';mysql> set global general_log=on;mysql> use mysql;mysql> select * from test.student3;+----+--------------+------------+--------+------+| id | teacher_name | teacher_id | name  | sex |+----+--------------+------------+--------+------+| 1 | 花花     |     1 | 三安  | 女  || 4 | 散散     |     2 | 三安  | 女  || 6 | bibi     |     3 | 三安  | 女  |+----+--------------+------------+--------+------+3 rows in set (0.00 sec)mysql> select * from general_log;| 2018-07-17 23:00:12 | root[root] @ localhost [] |     2 | 1132333306 | Query    | select * from test.student3

查看/tmp/general.log的信息,可以大致看到哪些sql查询/更新/删除/插入比较频繁了。比如有些表不是经常变化的,查询量又很大,就完全可以cache;对主备延迟要求不高的表,读可以放到备库;等等

以上是"mysql中general_log日志知识点有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

日志 知识 性能 方式 问题 知识点 很大 内容 数据 文件 方法 篇文章 三安 帮助 频繁 情况 数据库 有时候 版本 语句 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库使用游标遍历数据不能修改 中国银行服务器查询 网络安全导航系统 网络技术案例分析题 华为服务器开启性能模式 郴州物流软件开发 陕西联想服务器虚拟化优势 密码学与网络安全第6版答案 网络安全应急协同处置系统 可视化布线软件开发 某大项目包括软件开发子项目 公司服务器可以对指定ip限速吗 移动服务器密码什么时候需要 网络技术带来的利弊英语作文 信息网络安全2017 js 用什么链接数据库 软件开发计划流程图 软件开发用不到算法 嘉兴可视化智慧工厂软件开发 哪种云服务器做亚马逊好 互联网科技体育 福建互联网软件开发哪家好 威派格智慧水务软件开发待遇 廊坊三剑客网络技术有限公司 永州软件开发公司哪家靠谱 北京爱乐网络技术 海南裕居网络技术有限公司电话 维护网络安全 首先要知道 游戏软件开发策划工资 万象2008数据库修改
0