MySQL8.0的工具日志配置管理方式

 更新时间:2025年07月07日 10:23:31   作者:MyySophia  
MySQL日志分类包括错误日志(记录错误信息)、普通日志(全量操作记录)、二进制日志(用于数据恢复、主从复制和审计,默认8.0开启)、慢日志(记录性能低的SQL),配置需在my.cnf中设置,重启生效,建议分离存储日录与数据

日志分类

  • error log:错误日志
  • genernal log:普通日志
  • binlog:二进制日志
  • slow log:慢日志

设置错误日志

配置:
默认位置:
log_error=$DATDDIR/hostname.err
看日志: 主要关注 [ERROR],deadlock
[root@localhost ~]# # errorlog
[root@localhost ~]# # 默认开了,默认位置 datadir=/data/3306/data/HOSTNAME.err
[root@localhost ~]# # 控制参数 log_error=/data/3306/err.log, 注意: 最好是初始化之前设定好。
[root@localhost ~]# # 注意: 日志和数据分开存储 例如: /mysqllog/3306/mysql-err.log
[root@localhost ~]# vim /etc/my.cnf
[root@localhost ~]# cat /etc/my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
server_id=51
port=3306
socket=/tmp/mysql.sock
log_error=/data/3306/log/mysql-err.log

设置错误日志等级

[root@localhost ~]# mkdir -p /data/3306/log/
[root@localhost ~]# chown -R mysql.mysql /data/
[root@localhost ~]# /etc/init.d/mysqld restart
Shutting down MySQL.... [ OK ]
Starting MySQL.2021-11-20T14:58:53.264890Z mysqld_safe error: log-error set to
'/data/3306/log/mysql-err.log', however file don't exists. Create writable for
user 'mysql'.
The server quit without updating PID file
(/data/3306/data/[FAILED]t.localdomain.pid).
[root@localhost ~]# touch /data/3306/log/mysql-err.log
[root@localhost ~]# chown -R mysql. /data/
[root@localhost ~]# /etc/init.d/mysqld restart
错误日志:
启动故障
主从故障
死锁
数据库hang,堆栈信息
主要关注: [ERROR]
[ERROR] [MY-000068] [Server] unknown option ---》 配置文件有问题
日志记录级别
mysql> show variables like '%log_error%';
+----------------------------+----------------------------------------+
| Variable_name | Value |
+----------------------------+----------------------------------------+
| binlog_error_action | ABORT_SERVER |
| log_error | /data/3306/log/mysql-err.log |
| log_error_services | log_filter_internal; log_sink_internal |
| log_error_suppression_list | |
| log_error_verbosity | 2 |
+----------------------------+----------------------------------------+
5 rows in set (0.00 sec)

生效时间

mysql> set global log_error_verbosity=3; 下一次登录生效。

二进制日志(binlog)

作用

记录了MySQL 发生过的修改的操作的日志。,除了show select ,修改操作都会记录binlog

数据恢复、主从、SQL问题排查、审计(工具:binlog2sql my2sql)

配置

  • 8.0默认开启binlog
  • 默认在datadir binlog.0000001
  • 建议日志和数据分开存储,避免磁盘IO 抢占。

定义 参数 server_id=111

log_bin=路径/文件名前缀

 cat /etc/my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
server_id=51
port=3306
socket=/tmp/mysql.sock
log_error=/data/3306/log/mysql-err.log
log_bin=/data/3306/log/mysql-bin

重启生效

cd /data/3306/log/
[root@localhost log]# ll
total 24
-rw-r----- 1 mysql mysql 156 Nov 20 23:26 mysql-bin.000001
-rw-r----- 1 mysql mysql 32 Nov 20 23:26 mysql-bin.index

慢日志(slow_log)

作用

记录MySQL工作中,运行较慢的语句。用来定位SQL语句性能问题。

建议都在my.cnf 中配置,因为重启才能永久生效。

开关:
slow_query_log=1
slow_query_log_file=
维度:
set global slow_query_log=1
set global long_query_time=0.5
set global log_queries_not_using_indexes=1
set global log_throttle_queries_not_using_indexes=1000;

general_log 业务sql

普通日志,会记录所有数据库发生的事件及语句

[root@localhost ~]# # 普通日志 general_log
[root@localhost ~]# # 文本格式记录MySQL运行期间,所有的所作语句, 可以做问题诊断和调试
[root@localhost ~]# # 参数: general_log , general_log_file
[root@localhost ~]# vim /etc/my.cnf
[root@localhost ~]# cat /etc/my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
server_id=51
port=3306
socket=/tmp/mysql.sock
log_error=/data/3306/log/mysql-err.log
log_bin=/data/3306/log/mysql-bin
slow_query_log=1
slow_query_log_file=/data/3306/log/slow.log
long_query_time=0.5
log_queries_not_using_indexes=1
log_throttle_queries_not_using_indexes=1000
general_log=on
general_log_file=/data/3306/log/genlog

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL优化之如何了解SQL的执行频率

    MySQL优化之如何了解SQL的执行频率

    MySQL 客户端连接成功后,通过 show [session|global]status 命令 可以提供服务器状态信息,也可以在操作系统上使用 mysqladmin extended-status 命令获得这些消息
    2014-05-05
  • 详谈mysql order by in 的字符顺序(推荐)

    详谈mysql order by in 的字符顺序(推荐)

    下面小编就为大家带来一篇详谈mysql order by in 的字符顺序(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • MySQL 搭建MHA架构部署的步骤

    MySQL 搭建MHA架构部署的步骤

    这篇文章主要介绍了MySQL 搭建MHA架构部署的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Ubuntu Server下MySql数据库备份脚本代码

    Ubuntu Server下MySql数据库备份脚本代码

    为了mysql数据库的安全,我们需要定时备份mysql数据库,这里提供下脚本代码,需要的朋友可以参考下
    2013-06-06
  • MySQL普通索引和唯一索引的深入讲解

    MySQL普通索引和唯一索引的深入讲解

    这篇文章主要给大家介绍了关于MySQL普通索引和唯一索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Mysql 中的多表连接和连接类型详解

    Mysql 中的多表连接和连接类型详解

    这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据组合在一起,从而进行更复杂的查询和分析,感兴趣的朋友一起看看吧
    2025-01-01
  • MySQL数据库索引原理及优化策略

    MySQL数据库索引原理及优化策略

    MySQL数据库索引是一种数据结构,用于提高数据查询的效率,加快数据检索的速度。索引基于树结构实现,可以通过B+树等算法来优化索引效率。MySQL中常见的索引类型包括主键索引、唯一索引、普通索引、全文索引等
    2023-04-04
  • 绿色版 mysql 安装配置

    绿色版 mysql 安装配置

    好多朋友对于mysql的配置不是很清楚,其实最新本的配置也是这样的,建议大家到s.jb51.net去下载一些服务器软件。
    2009-06-06
  • mysql 队列 实现并发读

    mysql 队列 实现并发读

    队列是常用的数据结构,基本特点就是先入先出,在事务处理等方面都要用到它,有的时候是带有优先级的队列。当队列存在并发访问的时候,比如多线程情况下,就需要锁机制来保证队列中的同一个元素不被多次获取
    2012-04-04
  • mysql中find_in_set()函数用法及自定义增强函数详解

    mysql中find_in_set()函数用法及自定义增强函数详解

    这篇文章主要给大家介绍了关于mysql中find_in_set()函数用法及自定义增强函数的相关资料,在MySQL 数据库中进行复杂的查询语句,例如对多个字段进行筛选和排序,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06

最新评论