Mysql日志

Mysql 中的日志种类

  • binlog

    二进制日志文件

  • undo log

    回滚日志,实现事务的原子性和MVCC

  • redo log

    重做日志,实现事务持久性

  • relay log

    中继日志

  • error log

    错误日志

  • slow query log

    慢查询日志

  • general log

    一般查询日志

binlog

binlog 记录了所有的 DDL (创建表、修改表、删除表)、DML(crud)操作,包含语句的消耗时间。主要目的是复制和恢复

使用场景

  • 主从复制

master 端开启binlog, 主节点将二进制文件传递给从节点保持数据一致性。

  • 数据恢复

    使用mysqlbinlog工具恢复数据

undo log

提供回滚和MVCC,数据修改时不仅记录了redo log,还记录了undo log,如果因为某些原因事务失败或回滚失败,可以借助undo 进行回滚. undo log 是逻辑日志,可以认为delete 时,undo log 会记录一条insert 记录,反之亦然,update 操作时,会记录相反的update 记录。

redo log

redo 记录事务执行后的状态,事务开启后就会产生,重启mysql 时,根据redo log 进行重做,达到持久性。

relay log

error log

错误日志记录了MySQL Server每次启动和关闭的详细信息以及运行过程中所有较为严重的警告和错误信息。

slow query log

慢日志记录执行时间过长和没有使用索引的查询语句,报错select、update、delete以及insert语句,慢日志只会记录执行成功的语句。

查看慢查询时间:
  show variables like “long_query_time”;默认10s
查看慢查询配置情况:
  show status like “%slow_queries%”;
查看慢查询日志路径:
  show variables like “%slow%”;
开启慢日志
	set global slow_query_log = 1;
### 配置和查看 MySQL 日志文件 #### 查看 MySQL 版本及相关信息 为了确认当前使用的 MySQL 版本以及环境设置,可以通过多种方式获取这些信息。在 Linux 终端下可以直接通过 `mysql -V` 命令来快速获得 MySQL 的版本号[^1]。 #### 查找并读取 MySQL 连接日志和其他类型的日志 对于想要了解具体的连接活动或其他操作的日志详情,在 Linux 中有几种不同的途径可以实现这一点: - **错误日志**:这是最常用的调试工具之一,默认情况下位于 `/var/log/mysql/error.log` 或者是在安装过程中指定的位置。如果遇到任何启动失败或者其他严重问题时应该优先检查这里。 - **查询慢日志 (Slow Query Log)** 和 **常规查询日志 (General Query Log)** :前者用于记录那些执行时间超过设定阈值的SQL语句;后者则几乎无差别地保存所有的客户端请求。两者都可以帮助优化性能瓶颈所在之处。要开启它们可以在 my.cnf 文件内的 `[mysqld]` 段落加入如下参数: ```ini slow_query_log=ON long_query_time=2 # 单位秒 general_log_file=/path/to/general-query.log ``` - **二进制日志(Binary Logs)** 及其中继日志(Relay Logs),主要用于复制机制下的主从同步过程跟踪。可通过 SQL 查询得知具体路径: ```sql SHOW VARIABLES LIKE 'log_bin'; SHOW VARIABLES LIKE 'relay_log'; ``` 关于删除旧的 bin-log 来释放空间的操作也十分简单有效,只需确保保留必要的备份即可。例如,移除编号小于某个特定值的所有二进制日志条目可以用 PURGE BINARY LOGS TO 语法完成[^2]。 #### DDL 日志的作用及其特性 值得注意的是,DDL(Data Definition Language)日志专门用来处理涉及表结构变更的任务,并且只存在于临时状态直到事务提交完毕即刻消失不见。这意味着除非发生意外中断情况,否则日常运维工作中很少有机会直接接触到该类别的日志文件[^3]。 ```bash # 显示有关 relay log 的变量信息 show variables like '%relay%'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值