我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql的主要几种日志及慢查询方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql的主要几种日志及慢查询方法

本文主要给大家简单讲讲Mysql的主要几种日志及慢查询方法,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望Mysql的主要几种日志及慢查询方法这篇文章可以给大家带来一些实际帮助。

mysql日志主要有以下几种:

l     错误日志:log_error

l     通用查询日志:general_log

l     二进制日志:binlog

l     慢速查询日志:log_slow_queries

l     中继日志:relay_log

l     事务日志:innodb_log

由于版本的不同,以下的目录文件目录也有所不同。

 

1、错误日志


 【Windows下】       修改主配置文件my.ini

            [mysqld]

           Error-bin[=dir\[filename]]    

//dir:指定错误日志的存储路径;filename:指定错误文件的文件名

 

删除错误日志:

Mysqladmin -u root -p flush-logs;

 

      【Linux下】

修改主配置文件my.cnf

            [mysqld]

            log-error=mysql_error.log(绝对路径或若直接文件名则会存储到数据目录下)

            log_warnings={on|off|2}:将不将警告信息记录日志

                log_warnings表示警告信息是否记录在错误日志中,1和0也就是on和off表示记录和不记录,2则表示失败拒绝的连接信息。

        在mysql云服务器上查看错误日志的配置:

            mysql> show global variables like '%log%';

 

2、通用查询日志(非常重要!!!)


        mysql所有查询语句都会被记录。

        默认关闭此项记录,一般作调试用,平时开启会记录大量数据占用磁盘空间。

        存储位置:文件,表(table,mysql.general_log)

        默认存储在数据目录下。

        Linux环境下,修改主配置文件my.cnf。

            [mysqld]

            general_log={on|off}

            general_log_file=mysql_general.log (绝对路径或若直接文件名则会存储到数据目录下)

            log_output={file|table|file,table|none}:日志输出类型

  

在不重启MYSQL服务的情况下,操作通用查询日志:

 

mysql> set global general_log=on;   //开启

 

mysql> set global general_log=off;   //关闭

 

mysql> mysqladmin -u root -p flush-logs   //删除日志(先删除旧的,再创建一个新的)

  

3、二进制日志(非常重要!!!)

        1》用于记录引起数据改变或存在引起数据改变的潜在可能性的语句(statement)或改变后的结果(row),也可能是二者混合。

        2》包含了所有更新了的数据或者已经潜在更新了数据的所有语句,记录了数据的更改以及数据更改的事件events和位置position。

        3》主要目的是在恢复时能够最大可能地恢复数据库,默认开启的。

        4》Linux环境下,修改主配置文件my.cnf。

            log_bin=/path/to/bin_log_file:

                这是个只读变量,表明存放日志的目录位置,不能在此处写on或off,若不指定路径会存储在数据目录下。

            max_binlog_size=1073741824:

                设置单个二进制文件的最大尺寸,以字节为单位,超过此值大小就会自动滚动。

            sync_binlog={1|0|N}:

                表示每几次事务提交后是否立即将内存中的二进制日志同步到内存(binlog_cache)中。

                1表示立即提交;0则不提交;N可为任意值,表示每N次;值不同对应的性能也不同,0和1的性能差别可高达5倍之多。写入磁盘的操作是使用fdatasync()函数。

            binlog_format={statement|row|mixed}:

                binlog日志存放的格式

            expire_logs_days=N:

                二进制日志的有效天数

        

        5》可以用mysqlbinlog命令查看二进制日志文件。

            mysqlbinlog:

                 yyyy-mm-dd hh:mm:ss

                 --start-datetime=

                 --stop-datetime=

                 -j, --start-position=#

                  --stop-position=#

                  --user, --host, --password

        8》在mysql中查看二进制

            查看二进制日志文件列表:

                 mysql> show master|binary logs; 

            查看当前正在使用的二进制日志文件:

                mysql> show master status;

            查看二进制日志文件中的事件:

                mysql> show binlog events [in 'log_name'] [from pos] [limit [offset,] row_count]

            查看二进制日志的参数配置

                MariaDB [(none)]> show global variables where variable_name like '%log_bin%' or variable_name like '%binlog%';

           

        9》清除二进制日志

            清除所有日志(不存在主从复制关系)

                mysql> reset master;

            清除指定日志之前的所有日志

                mysql> purge master logs to '日志';

            清除某一时间点前的所有日志

                mysql> purge master logs before '年-月-日 时:分:秒';

            清除 n 天前的所有日志

                mysql> purge master logs before current_date - interval 10 day;

            由于二进制日志的重要性,请仅在确定不再需要将要被删除的二进制文件,

            或者在已经对二进制日志文件进行归档备份,

            或者已经进行数据库备份的情况下,才进行删除操作,且不要使用 rm 命令删除。

            

        10》暂停二进制日志

 

Set SQL_LOG_BIN=0;     //暂停二进制日志

 

Set SQL_LOG_BIN=1;     //启动二进制日志

  

4、慢速查询日志(非常重要!!!)


        记录所有执行时间超过long_query_time秒的sql语句,可用于找到执行时间长的查询,以用于优化。

        默认未开启,开启优先级比查询日志高,默认是超过10秒的才会被记录。

        存储位置:文件,表(table,mysql.slog_log)

        Linux环境下,修改主配置文件/etc/my.cnf,在[mysqld]下添加“long_query_time”和“log-slow-queries=文件路径名”,重启mysqld服务。

            log_slow_queries={on|off}:是否开启慢查询日志(5.5以前)

            slow_query_log={on|off}:是否开启慢查询日志(和上面没有区别,5.6以后)

            slow_query_log_file=xxxx-slom.log:慢查询日志存放位置,默认为“主机名-slow.log”。相对路径的话,默认为数据目录下。

            log_output={file|table|file,table|none}:表示存放日志的方式

            log_query_time=N :表示多长时间的查询被认为慢查询,默认为10秒。   

        mysql自带了对慢查询日志的统计分析工具:mysqldumpslow

        

    操作慢查询日志:

mysql> set global slow_query_log=on;      //开启慢查询日志

 

mysql> set global slow_query_log=off;      //关闭慢查询日志

 

删除慢查询日志:直接删除慢查询日志文件,通过mysqladmin -u root -p flush-logs重新生成一个新的慢查询日志。

Mysql的主要几种日志及慢查询方法就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的行业资讯。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql的主要几种日志及慢查询方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql慢日志查询的方法是什么

要查询MySQL慢日志,可以使用以下方法:登录到MySQL数据库管理系统。运行以下SQL查询语句来查看慢查询日志的参数设置:SHOW VARIABLES LIKE 'slow_query_log';SHOW VARIA
mysql慢日志查询的方法是什么
2024-03-14

MySQL慢日志查询分析方法与工具

MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。 1)通用查询日志:记录建立的客户端连接和执行的语句。 2)慢查询日志:记录所有执行时间超过long_query_time秒
MySQL慢日志查询分析方法与工具
2017-05-29

mysql查询日志的方法有哪些

有以下几种方法可以查询MySQL的日志:查询错误日志:MySQL的错误日志记录了MySQL实例发生的错误信息,可以通过查看错误日志来排查问题。错误日志的默认路径是在MySQL的data目录下的hostname.err文件中,也可以通过设置l
mysql查询日志的方法有哪些
2024-05-14

Navicat中查看MySQL通用查询日志的方法

正常情况下,为了保证数据库的性能,通用查询日志处于不启用状态,并且在没开启过的情况下,磁盘中是不保存hostname.log的日志的。 1.查询日志状态 在Navica查询窗口中输入以下命令 show variables like 'gen
2023-08-17

MySQL SQL性能分析之慢查询日志、explain使用的方法是什么

本篇内容介绍了“MySQL SQL性能分析之慢查询日志、explain使用的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SQL执
2023-04-19

编程热搜

目录