作者:@张扶摇
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhangshengdong/p/9195891.html
目录
牛刀小试MySQL--日志文件
牛刀小试MySQL--日志文件
MySQL Server的日志文件一共有五种类型的日志。(Innodb redo log除外,它属于Innodb存储引擎实现的日不在此篇讨论)
- The Error Log : 错误日志
错误日志,顾名思义,包含了mysqld在启动,关闭和服务器运行期间发生的任何错误信息和正常信息。这些信息都会写在Error Log上面。相关的参数配置如下:
log-error = /data/mysqldata/3306/mysql-error.log
- The General Query Log : 通用查询日志
通用查询日志,是记录了mysqld正在做的事情,mysql服务器会记录客户端连接和不连接,以及来自客户端的每条sql语句的记录信息,当然,如果你想准确地知道客户端到底传了什么东西给mysqld,这个日志是非常的有用,但是它非常影响服务器的性能,所以,一般情况下,它是不开启的。相关的参数配置如下:
#设置为"0"代表不开启通用查询日志
general_log = 0
general_log_file = /data/mysqldata/3306/general_statement.log
- The Binary Log : 二进制日志
二进制日志,包含了数据库的各种事件(events),这些事件描述了数据库的整个改动,例如表创建的操作和数据的改动(增,删,改操作)。它也包括了一些潜在的改动(例如:用了 一条delete语句,但是什么都没有删除掉),除非使用基于行复制row-based logging
,否则会包含所有改动数据的sql语句。二进制日志有两个重要的用途:
1.MySQL复制(For Replication) 二进制日志会记录master里面所有改动数据的语句,然后 slave会接受master的二进制日志,从而根据二进制日志,修改slave服务器上的数据。
2.MySQL恢复 数据库的恢复操作需要二进制日志,在对一个备份进行恢复之后,记录在二进制日志中的events可以re-executed,这些events可以使数据库进行基于时间点的增量恢复。(Point-in-Time (Incremental) Recovery)
相关的参数配置如下:
#开启binlog并指定binlog的位置
log-bin = /data/mysqldata/3306/binlog/mysql-bin
#binlog的格式有三种,STATEMENT模式(SBR),ROW模式(RBR),MIXED模式(MBR)
binlog_format= mixed
#为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=32m
#binlog 能够使用的最大cache 内存大小
max_binlog_cache_size=64m
#二进制日志的文件大小
max_binlog_size=512m
- The Slow Query Log :慢查询日志
可以查看mysql服务器中运行比较慢的sql语句,这个在日常工作中,会经常用到。日志中包含了一些超过了参数 long_query_time 指定时间的sql语句。
参数配置如下:
#设置为"1"代表开启慢查询日志
slow_query_log = 1
slow_query_log_file = /data/mysqldata/3306/slow_statement.log
- Relay log (与replication相关)
Relay log存放slave端通过I/O线程从Master端读取的二进制日志信息,然后在由SQL线程读取relay log日志信息并应用到slave端,对slave端做和master一样的数据操作
relay-log-index设置代表了记录relay日志存放位置的绝对路径。相关参数配置如下:
relay-log = /data/mysqldata/3306/binlog/relay-bin
relay-log-index = /data/mysqldata/3306/binlog/relay-bin.index
感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统