MySQL日志参数配置简介

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 一、全日志配置 记录所有的操作信息和登录信息;只有在全日志功能打开的时候才会记录,否则不做任何记录。 1、参数相关设置 general_log=ON |OFF (开启或关闭,也可以用0或1) grneral_log_file=/data/mysql/JSH-01.

一、全日志配置

记录所有的操作信息和登录信息;
只有在全日志功能打开的时候才会记录,否则不做任何记录。

1、参数相关设置

general_log=ON |OFF (开启或关闭,也可以用0或1)

grneral_log_file=/data/mysql/JSH-01.log(日志路径及名字)

2、参数可调整范围

general_log gengeral_log_file 均可以动态调整

3、示例

mysql> select @@general_log;
+---------------+
| @@general_log |        默认全日志为关闭
+---------------+
|             0 |
+---------------+
1 row in set (0.00 sec)

mysql> set global general_log=1;   设置全局变量,开启全日志
Query OK, 0 rows affected (0.00 sec)

mysql> select @@general_log;
+---------------+
| @@general_log |
+---------------+
|             1 |
+---------------+
1 row in set (0.00 sec)

mysql> select @@general_log_file;
+------------------------+
| @@general_log_file     |
+------------------------+
| /data/mysql/JSH-01.log |
+------------------------+
1 row in set (0.00 sec)

mysql> ^DBye
[root@JSH-01 mysql]# tail -3 /data/mysql/JSH-01.log   查看记录内容
181128 20:52:10        1 Query    select @@general_log
181128 20:52:21        1 Query    select @@general_log_file
181128 20:52:26        1 Quit    

……

mysql> set global general_log_file="/data/mysql/new_JSH-01.log";
Query OK, 0 rows affected (0.00 sec)   设置路径及日志名字

mysql> select @@general_log_file;
+----------------------------+
| @@general_log_file         |
+----------------------------+
| /data/mysql/new_JSH-01.log |
+----------------------------+
1 row in set (0.00 sec)
AI 代码解读

二、慢查询日志配置

记录所有大于long_query_time定义的值的查询信息;
只有在慢查询日志功能打开的时候才会记录,否则不做任何记录。

1、参数相关设置

slow_query_log=ON |OFF(开启或关闭,也可以用0或1)

long_query_time=2 (定义超过多长时间的为慢sql)

slow_query_log_file=/data/mysql/JSH-01-slow.log(日志路径及名字)

2、参数可调整范围

三个参数均可以动态调整

3、示例

mysql> select @@slow_query_log;
+------------------+
| @@slow_query_log |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.01 sec)

mysql> select @@long_query_time;    定义超过10秒为慢日志
+-------------------+
| @@long_query_time |
+-------------------+
|         10.000000 |
+-------------------+
1 row in set (0.00 sec)

mysql> select @@slow_query_log_file;
+-----------------------------+
| @@slow_query_log_file       |
+-----------------------------+
| /data/mysql/JSH-01-slow.log |
+-----------------------------+
1 row in set (0.00 sec)

mysql> select slee(3);
ERROR 1305 (42000): FUNCTION slee does not exist
mysql> select sleep(3);    执行3秒
+----------+
| sleep(3) |
+----------+
|        0 |
+----------+
1 row in set (3.00 sec)

mysql> select sleep(11);    执行11秒
+-----------+
| sleep(11) |
+-----------+
|         0 |
+-----------+
1 row in set (11.01 sec)

mysql> ^DBye

[root@JSH-01 mysql]# tail -f /data/mysql/JSH-01-slow.log 查看慢日志
/usr/local/mysql/bin/mysqld, Version: 5.6.36 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 181128 21:54:23          *开始执行时间
# User@Host: root[root] @ localhost []  Id:     4       *执行的用户
# Query_time: 11.000287   *执行时长*   Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0 
SET timestamp=1543413263;      *时间戳
select sleep(11);          *执行的内容
AI 代码解读

三、错误日志配置

记录MySQL启动和关闭的一些信息

1、参数相关设置

log_error=

2、参数可调整范围(只读参数,不支持动态调整)

只能在配置参数中修改,且修改完成需要重启MySQL。

mysql> select @@log_error;
+------------------------+
| @@log_error            |
+------------------------+
| /data/mysql/JSH-01.err |
+------------------------+
1 row in set (0.00 sec)

mysql> set global log_error="/data/mysql/new_JSH-01.err";
ERROR 1238 (HY000): Variable 'log_error' is a read only variable
AI 代码解读

3、修改配置参数时,如果使用mysql.server 和 mysqld_safe脚本启动

需要将log_error路径参数配置在 my.cnf 的 [mysqld_safe]域中。

四、MySQL错误日志详解

错误日志的内容分为三种类型:note正常工作日志;waring警告日志;error 错误日志,即重要异常日志,此时系统一般遇上严重错误。

在如下三种状态下,会产生日志信息:启动日志、关闭日志、报错信息。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
1
0
43
分享
相关文章
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
27 5
图解MySQL【日志】——Redo Log
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
148 90
seatunnel配置mysql2hive
本文介绍了SeaTunnel的安装与使用教程,涵盖从安装、配置到数据同步的全过程。主要内容包括: 1. **SeaTunnel安装**:详细描述了下载、解压及配置连接器等步骤。 2. **模拟数据到Hive (fake2hive)**:通过编辑测试脚本,将模拟数据写入Hive表。 3. **MySQL到控制台 (mysql2console)**:创建配置文件并执行命令,将MySQL数据输出到控制台。 4. **MySQL到Hive (mysql2hive)**:创建Hive表,配置并启动同步任务,支持单表和多表同步。
56 15
图解MySQL【日志】——两阶段提交
两阶段提交是为了解决Redo Log和Binlog日志在事务提交时可能出现的半成功状态,确保两者的一致性。它分为准备阶段和提交阶段,通过协调者和参与者协作完成。准备阶段中,协调者向所有参与者发送准备请求,参与者执行事务并回复是否同意提交;提交阶段中,若所有参与者同意,则协调者发送提交请求,否则发送回滚请求。MySQL通过这种方式保证了分布式事务的一致性,并引入组提交机制减少磁盘I/O次数,提升性能。
36 4
图解MySQL【日志】——两阶段提交
MySQL底层概述—5.InnoDB参数优化
本文介绍了MySQL数据库中与内存、日志和IO线程相关的参数优化,旨在提升数据库性能。主要内容包括: 1. 内存相关参数优化:缓冲池内存大小配置、配置多个Buffer Pool实例、Chunk大小配置、InnoDB缓存性能评估、Page管理相关参数、Change Buffer相关参数优化。 2. 日志相关参数优化:日志缓冲区配置、日志文件参数优化。 3. IO线程相关参数优化: 查询缓存参数、脏页刷盘参数、LRU链表参数、脏页刷盘相关参数。
MySQL底层概述—5.InnoDB参数优化
MySQL原理简介—12.MySQL主从同步
本文介绍了四种为MySQL搭建主从复制架构的方法:异步复制、半同步复制、GTID复制和并行复制。异步复制通过配置主库和从库实现简单的主从架构,但存在数据丢失风险;半同步复制确保日志复制到从库后再提交事务,提高了数据安全性;GTID复制简化了配置过程,增强了复制的可靠性和管理性;并行复制通过多线程技术降低主从同步延迟,保证数据一致性。此外,还讨论了如何使用工具监控主从延迟及应对策略,如强制读主库以确保即时读取最新数据。
MySQL原理简介—12.MySQL主从同步
MySQL日志
本文介绍了MySQL中三个重要的日志:binlog、redolog和undolog。binlog记录数据库更改操作,支持数据恢复、复制和审计;redolog保证事务的原子性和持久性,实现crash-safe;undolog用于事务回滚及MVCC的实现。每个日志都有其独特的作用和应用场景,确保数据库的稳定性和数据一致性。
图解MySQL【日志】——磁盘 I/O 次数过高时优化的办法
当 MySQL 磁盘 I/O 次数过高时,可通过调整参数优化。控制刷盘时机以降低频率:组提交参数 `binlog_group_commit_sync_delay` 和 `binlog_group_commit_sync_no_delay_count` 调整等待时间和事务数量;`sync_binlog=N` 设置 write 和 fsync 频率,`innodb_flush_log_at_trx_commit=2` 使提交时只写入 Redo Log 文件,由 OS 择机持久化,但两者在 OS 崩溃时有丢失数据风险。
32 3
数据库数据恢复——MySQL简介和数据恢复案例
MySQL数据库数据恢复环境&故障: 本地服务器,安装的windows server操作系统。 操作系统上部署MySQL单实例,引擎类型为innodb,表空间类型为独立表空间。该MySQL数据库没有备份,未开启binlog。 人为误操作,在用Delete命令删除数据时未添加where子句进行筛选导致全表数据被删除,删除后未对该表进行任何操作。
图解MySQL【日志】——Buffer Pool
Buffer Pool 是数据库管理系统(DBMS)中用于缓存磁盘数据页的内存区域,主要包含数据页、索引页、undo 页等。它通过减少磁盘 I/O 提升性能,特别是在处理大型数据库时效果显著。查询时,整个数据页而非单条记录会被加载到 Buffer Pool 中,以提高访问效率。
21 0
图解MySQL【日志】——Buffer Pool
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等