MySQL错误日志与通用查询日志图文详析

目录
  • MySQL日志文件系统的组成
  • 启动错误日志
  • 查看错误日志
  • 删除错误日志
  • 通用查询日志
  • 删除通用查询日志
  • 通用查询日志的备份
  • 总结

MySQL日志文件系统的组成

a、错误日志:记录启动、运行或停止mysqld时出现的问题。

b、通用日志:记录建立的客户端连接和执行的语句。

c、更新日志:记录更改数据的语句。该日志在MySQL 5.1中已不再使用。

d、二进制日志:记录所有更改数据的语句。还用于复制。

e、慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。

f、Innodb日志:innodb redo log

启动错误日志

  • 在不同情况下,错误日志会记录在不同的位置。如果没有在配置文件中指定文件名,则文件名默认为hostname.err。
  • 在MySQL5.6的RPM发布方式中,错误日志默认被放置在/var/log/mysqld.log。
  • 可以通过my.cnf文件进行配置:
 [mysqld_safe]
 log-error=/var/log/mysqld.log

使用vi /etc/my.cnf打开配置文件

Note:修改参数文件后重启MySQl服务才能使修改生效。

查看错误日志

MySQL的错误日志是以文本形式存储的。可以使用各种文本相关命令直接查看。

perror命令可用于查询错误代码的含义。例如:

perror 1006

使用tail -n 15 /var/log/mysqld.log查看错误日志

需要关注日志产生的时间和级别,通常日志级别分为以下几种:

debug、info、note、warning、error、critical

删除错误日志

错误日志可能会不断的增长。因此有必要周期性的维护。

推荐的删除方法:

#echo > /var/log/mysqld.log

通用查询日志

记录MySQL执行过的查询

开启通用查询日志

MySQL的通用查询日志默认情况下是不开启的。

当需要进行采样分析时手工开启。

建议使用方法1,因为并不需要持久化的设置,而且修改配置文件需要重启MySQL服务

开启方法1:SET GLOBAL general_log=1;
关闭:SET GLOBAL general_log=0;
开启方法2:编辑配置文件 /etc/my.cnf
[mysqld]
general-log-file[=path/[filename]]
general-log=1

Note:如果没有指定通用查询日志文件保存的位置和文件名时,默认放在MySQl数据文件目录中即/var/lib/mysql,文件名为主机名.log。

删除通用查询日志

通用查询日志可能会不断的增长。通常是做采样分析时才开启。不用的通用查询日志要记得删除。

推荐的删除方法:

#set global general_log=0;删除前先关闭
#rm -rf /var/lib/mysql/hostname.log

通用查询日志的备份

在Linux或Unix中,你可以通过下面的命令重新命名文件

并创建一个新文件:

   shell> mv hostname.log hostname-old.log
   shell> mysqladmin flush-logs
   shell> cp hostname-old.log to-backup-directory
   shell> rm hostname-old.log

在Windows中,服务器打开日志文件期间不能重新命名日志文件。必须先停止服务器然后重新命名日志文件。然后重启服务器来创建新日志文件。

总结

到此这篇关于MySQL错误日志与通用查询日志的文章就介绍到这了,更多相关MySQL错误日志与通用查询日志内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于Mysql通用查询日志和慢查询日志分析

    MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1.通用查询日志:记录建立的客户端连接和执行的语句. 2.慢查询日志:记录所有执行时间超过longquerytime秒的所有查询或者不使用索引的查询 一.通用查询日志 在学习通用日志查询时,需要知道两个数据库中的常用命令: 1) show variables like '%general%'; 可以查看,当前的通用日志查询是否开启,如果general_log的

  • MySQL中用通用查询日志找出查询次数最多的语句的教程

    MySQL开启通用查询日志general log mysql打开general log之后,所有的查询语句都可以在general log文件中以可读的方式得到,但是这样general log文件会非常大,所以默认都是关闭的.有的时候为了查错等原因,还是需要暂时打开general log的(本次测试只修改在内存中的参数值,不设置参数文件). general_log支持动态修改: mysql> select version(); +-----------+ | version() | +------

  • Ubuntu下启动、停止、重启MySQL,查看错误日志命令大全

    1)启动: sudo /etc/init.d/mysql start 2)停止: sudo /etc/init.d/mysql stop 3)重启: sudo /etc/init.d/mysql restart 4)查看日志: cat /var/log/mysql.err cat /var/log/mysql/error.log 5)不支持中文 修改 /etc/mysql/my.cnf 在 [client] 下面增加: default-character-set=utf8 或 character

  • 查看MySQL的错误日志的方法

    MySQL的错误信息是在data目录下的,且文件名为<hostname>.err(<hostname>指的是主机名),但由于每个人安装的环境不一样,或你忘记了data目录的所在位置,你可以通过下面方法查找. #hostname //获得主机名 <hostname> #find / -name <hostname>.err ..... #cd ... #vi <hostname>.err

  • MySQL中开启和使用通用查询日志的实例教程

    开启通用查询日志 因为为了性能考虑,一般通用查询日志general log不会开启.slow log可以定位一些有性能问题的sql,而general log会记录所有的SQL. mysql5.0版本,如果要开启slow log.general log,需要重启,从MySQL5.1.6版开始,general query log和slow query log开始支持写到文件或者数据库表两种方式,并且日志的开启,输出方式的修改,都可以在Global级别动态修改. mysql>select versio

  • MySQL错误日志与通用查询日志图文详析

    目录 MySQL日志文件系统的组成 启动错误日志 查看错误日志 删除错误日志 通用查询日志 删除通用查询日志 通用查询日志的备份 总结 MySQL日志文件系统的组成 a.错误日志:记录启动.运行或停止mysqld时出现的问题. b.通用日志:记录建立的客户端连接和执行的语句. c.更新日志:记录更改数据的语句.该日志在MySQL 5.1中已不再使用. d.二进制日志:记录所有更改数据的语句.还用于复制. e.慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的

  • windows 64位下MySQL 8.0.15安装教程图文详解

    先去官网下载点击的MySQL的下载 下载完成后解压  解压完是这个样子 配置系统环境变量 复制解压后的mysql到C盘或者其他磁盘下 我们去系统的环境变量的path里添加一个mysql的配置  指向mysql的bin目录   配置初始化的my.ini文件的文件 解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目录下添加的my.ini(新建文本文件,将文件类型改为的.ini),写入基本配置: [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录

  • Mac OS系统下mysql 5.7.20安装教程图文详解

    Mac OS X 下 TAR.GZ 方式安装 MySQL 5.7 与 MySQL 5.6 相比, 5.7 版本在安装时有两处不同: 1:初始化方式改变, 从scripts/mysql_install_db --user=mysql初始化方式变成了bin/mysqld --initialize --user=mysql方式; 2: 初始密码生成改变, 5.6 的版本在 tar gz 方式初始化完成后默认 root 密码为空, 5.7 版本在初始化完成后会生成一个临时的 root 密码: 一.在浏览

  • MySQL 8.0.20 安装教程图文详解(windows 64位)

    一:mysql官网下载 https://dev.mysql.com/downloads/file/?id=494993 不用注册,直接下载就好 二:解压缩 原谅我技术渣,所有文件夹都翻过了,真的没找到mysql-installer在哪个文件夹内,真的不知道应该运行哪个文件(有大神知道欢迎指导) ok解压后的目录并没有的my.ini文件,那么自己配置.自行创建在安装根目录下添加的my.ini,写入基本配置: [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录

  • MySQL如何对数据进行排序图文详解

    目录 一. 排序的基本使用 二. 使用列的别名来排序 三. 二级排序 总结 一. 排序的基本使用 在查询数据时,如果没有使用排序操作,默认情况下SQL会按元组添加的顺序来排列查询结果. 在SQL中,使用关键字 ORDER BY... 来进行排序操作.在此关键字后面可以添加关键字 ASC (ascend) 表示升序排列 (从小到大) ,DESC (descend) 表示降序排列 (从大到小) . 如果在 ORDER BY... 关键字后没有添加 ASC 或 DESC 来指明升序还是降序排列,SQL

  • MySQL占用内存过大解决方案图文详解

    目录 前言 解决方案 1. 找到配置文件 2. 修改配置文件 3. 重启MySQL 后记 前言 对于部分小资玩家来说,服务器数量和内存往往是很有限的,像我个人的服务器配置就是2核4G5M. 4G内存对于Java玩家来说,真的不大,开几个中间件+自己的微服务真的还蛮挤的,然后又摊上MySQL这个大冤种.我本机上的MySQL仅仅只占几M内存(虽然我不怎么用,但是本机MySQL确实是开着的): 而服务器的则要占400M,怎么说其实没什么吞吐量,纯粹是自己玩一玩,这内存占用属实有点吃不消啊... 解决方

  • Ubuntu中MySQL的参数文件my.cnf示例详析

    前言 对于MySQL的理解,我认为很多性能优化工作.主从主主复制都是在调整参数,来适应不同时期不同数量级的数据. 故,理解透彻my.cnf里的参数是永恒的话题:只有理解透彻了参数设置,才能在某些方面对数据库进行调优. 前几天刚接手一个MySQL数据,操作系统为Ubuntu 16.04.5 LTS,  数据库版本为5.7.23-0ubuntu0.16.04.1(APT方式安装的MySQL).这个操作系统下的MySQL的配置文件my.cnf很多地方都让人有点不适应(跟之前的MySQL环境有些出入,之

  • Mysql深入探索之Explain执行计划详析

    前言 如何写出效率高的SQL语句,提到这必然离不开Explain执行计划的分析,至于什么是执行计划,如何写出高效率的SQL,本篇文章将会一一介绍. 执行计划 执行计划是数据库根据 SQL 语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的. 使用explain关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的,分析你的 select 语句或是表结构的性能瓶颈,让我们知道 select 效率低下的原因,从而改进我们的查询.

  • MySQL索引失效的几种情况详析

    1.前导模糊查询不能利用索引(like '%XX'或者like '%XX%') 假如有这样一列code的值为'AAA','AAB','BAA','BAB' ,如果where code like '%AB'条件,由于前面是 模糊的,所以不能利用索引的顺序,必须一个个去找,看是否满足条件.这样会导致全索引扫描或者全表扫 描.如果是这样的条件where code like 'A % ',就可以查找CODE中A开头的CODE的位置,当碰到B开头的 数据时,就可以停止查找了,因为后面的数据一定不满足要求.

  • Mysql表连接的误区与原理详析

    目录 前言 连接过程简介 内连接与外连接 where 与 on 总结 前言 搞后端的肯定要经常接触到数据库,搞数据库一个避免不了的地方就是 join, join的语法很简单,但是在使用时常常陷入一下两种误区: 误区一: 业务至上,管他三七二十一,再复杂的查询一个连接语句搞定 误区二: 敬而远之,上次写的慢查询sql就是使用了join导致的,以后再也不敢用了 先来举个栗子: mysql> SELECT * FROM t1; +------+------+ | m1 | n1 | +------+-

随机推荐