首页 > 数据库 >MySQL教程 - 日志(Logging)

MySQL教程 - 日志(Logging)

时间:2022-09-06 07:44:06浏览次数:60  
标签:Logging logs 二进制 查询 MySQL 日志 log

更新记录
转载请注明出处。
2022年9月6日 发布。
2022年9月6日 从笔记迁移到博客。

日志

MySQL中日志分类

二进制日志 以二进制形式记录所有更改数据的语句,不包含查询语句
查询日志 记录建立的客户端连接和执行的语句
错误日志 记录MySQL服务的启动/运行/停止MySQL服务时出现的问题
慢查询日志 记录执行时间超过long_query_time的查询或不适用索引的查询

备注:默认只启动错误日志

二进制日志

启动和设置二进制日志

配置文件my.ini中[MySQLd]组下面设置

log-bin [= path / [filename]]
expire_logs_days = 10
max_binlog_size = 100M

说明:
log-bin 定义开启二进制, path和filename指定了日志文件的路径和名称
expire_logs_days 定义MySQL的过期时间
max_binlog_size 定义单个文件大小限制,默认1G,不得大于1G,不得小于4096B

查看是否启动二进制日志

show variables like 'log_bin';

结果:

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+

查看文件个数及文件名

show binary logs;

查看文件详细内容

mysqlbinlog path/filename;

删除所有二进制文件

reset master;

删除指定二进制文件

purge {master|binary} logs to '文件名';
purge {master|binary} logs before '日期';

说明:
第一种按文件名删除
第二种按日期删除,格式20190702

使用二进制恢复数据库

mysqlbinlog [参数] filename | mysql -u用户名 -p密码;

参数支持:
--start-date 开始时间
--stop-date 结束时间
--start-position 开始位置
--stop-position 结束位置

实例:恢复到2019年7月2日12点前

mysqllbinlog --stop-date="2019-07-02 12:00:00" | mysql -uroot -p123456;

暂时停止二进制功能

set sql_log_bin = {0|1}

说明:
1是开启功能
0是关闭功能

错误日志

启动和设置错误日志

默认在数据库目录下,默认文件名为hostname.err
可以通过修改my.ini配置

[mysqld]
log-error = [path / [filename]]

修改配置后,需要重启mysql生效

查看错误日志

查询错误日志的存储路径和文件名

show variables like 'log_error';

结果:

+---------------+--------------------------+
| Variable_name | Value                    |
+---------------+--------------------------+
| log_error     | c:\wamp64\logs\mysql.log |
+---------------+--------------------------+

删除错误日志

错误日志是以文件形式存储的,可以直接删除

或者在MySQL客户端

mysql> flush logs;

查询日志

通用查询日志记录MySQL的所有用户操作,包括启动关闭服务/执行查询/更新语句等..

启动和设置通过查询日期

默认情况下并没有开启通用查询日志.可以通过修改my.ini配置

[mysqld]
log [ = path /[filename]]

查看通用查询日志

根据my.ini设置的路径文件名查看

删除通用查询日志

直接删除文件或执行

mysql> flush logs;

慢查询日志

记录查询时长超过指定时间的日志

可以找出执行时间较长执行效率较低的语句,然后进行优化

启动和设置慢查询日志

默认是关闭的,可以通过修改配置文件开启

[mysqld]
log-slow-queries [=path/[filename]]

查看慢查询日志

根据my.ini设置的路径文件名查看

删除慢查询日志

直接删除文件或执行

mysql> flush logs;

标签:Logging,logs,二进制,查询,MySQL,日志,log
From: https://www.cnblogs.com/cqpanda/p/16660349.html

相关文章

  • MySQL备份
    MySQL备份为什么要备份:保证重要的数据不丢失数据转移MySQL数据库备份的方式直接拷贝物理文件在sqlyog这种可视化工具中手动导出在想要导出的表或者库......
  • Mysql的锁
    参考B站UP主我是大彬呀Mysql都有哪些锁按锁的粒度分:行级锁页级锁表级锁按锁的级别分类:共享锁排他锁意向锁行级锁含义mysql中锁定粒度最细的......
  • 浅析mysql报错:Error writing file '/tmp/MY4QWdUa' (Errcode: 28 - No space left on
    一、问题背景1、报错描述:今天执行sql时发现Node服务的日志报错:SequelizeDatabaseError:EE_WRITE:Errorwritingfile'/tmp/MY4QWdUa'(Errcode:28-Nospac......
  • mysqldump的简单用法
    1.单个数据库备份,必须在系统命令行环境运行mysqldump-uusername–ppassword--default-character-set=utf8databasename>dumpfile-u用户名,有空格;-p后面是数据库密......
  • mysql 锁
    锁分为独占锁与共享锁锁的粒度有 表锁,行锁,意向锁重点:行级锁(记录锁)类型:RecordLocks:普通记录锁GapLocks:间隙锁,由于普通记录锁无法锁住不存在的数据,所以提出......
  • MySQL8.0使用GROUP BY的问题
    当使用groupby的语句中,select后面跟的列,在groupby后面没有时,会报以下错误:Expression#2ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggregatedcolumn......
  • MySQL入门基础(3)
    DML和DDL补充insert插入多条语句insertinto表名(字段1,字段2)values(值1,值2),(值3,值4),...,()快速创建表将查询的结果当作成新的表createtablexxasselect*fro......
  • JAVA进阶--日志框架、阶段项目实战--2022年9月5日
    第一节 日志框架1、什么是日志用来记录程序运行过程中的信息,并且可以进行永久存储  2、输出语句存在哪些问题,日志结束应该具备哪些特点......
  • windows安装MySQL卡在--connect to server的界面上输入密码显示connection failed
    问题安装MySQL是,在‘ConnectToSever’界面,输入密码,点击‘check’,总是失败。接上篇:windows安装mysql时一直卡在startingtheserver这一位置,解决办法-天军-博客园(cn......
  • php8.0源码编译安装mysqli拓展
    将开发环境web项目上传到CentOS8.0云服务器上后,调用PHP文件报500错误,经排查php环境中不存在mysqli拓展,导致无法使用mysqli_connect()函数;查看phpinfo()页面证实猜想;原因可......