- Mysql运维篇介绍
- Mysql日志
- Mysql错误日志是Mysql中最重要的日志之一,它记录了当Mysql启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息,当数据库出现任何故障导致无法正常使用时,建议首先查看此日志,该日志默认是开启的,默认存放位置 /var/log,默认的日志文件名为 mysqld.log 。查看日志位置
-
show variables like '%log_error%';
- 二进制日志(BINLOG)记录了所有的DDL(数据定义语言)语句和DML(数据操作语言)语句 但不包括数据查询 (SELECT,SHOW)语句。
- 作用:灾难时的数据恢复,Mysql主从复制。在Mysql8版本中,默认二进制日志是开启的
-
show variables like '%log_bin%';
二进制日志格式 日志格式 含义 STATEMENT 基于SQL语句的日志记录,记录的是SQL语句,对数据进行修改的SQL都会记录在日志文件中 ROW 基于行的日志记录,记录的是每一行的数据变更。(默认) MIXED 混合了STATEMENT和ROW两种格式,默认采用STATEMENT,在某些特殊情况下会自动切换为ROW进行记录 show variables like '%binlog_format%';
- 日志查看,由于日志是以二进制的方式存储的,不能直接读取需要通过二进制日志查询工具mysqldbinlog来查看。
-
mysqldbinlog使用语法 -
修改ROW默认日志 vi /etc/my.cnf binlog_format=STATEMENT; systemctl restart mysqld.service
- 日志删除
-
二进制日志删除 -
purge master logs to 'binlog.000002'; 删除binlog.000002之前的日志数据
- 查询日志中记录了客户端的所有操作语句,而二号进制日志不包含查询数据的SQL语句。默认情况下,查询日志是未开启的,如果需要开启日志可以配置如下
-
show variables like '%general%';
-
修改my.cnf配置文件,然后重启mysqld -
tail -f mysql_query.log 查看日志
18 . 慢查询日志,索引调优数据库可以参考慢查询日志的时间
![](https://i-blog.csdnimg.cn/blog_migrate/2f03439b0c92647c6d61ceeeb89053aa.png)
19.
long_query_time指定了慢查询的阈值,即如果执行语句的时间超过该阈值则为慢查询语句,默认值为10秒。
可以在my.ini中设置指定慢查询的阈值, long_query_time = 阈值
log_queries_not_using_indexes如果值设置为ON,则会记录所有没有利用索引的查询(注意:如果只是将log_queries_not_using_indexes设置为ON,而将slow_query_log设置为OFF,此时该设置也不会生效,即该设置生效的前提是slow_query_log的值设置为ON),一般在性能调优的时候会暂时开启。
#查看是否开启慢查询
show variables like '%quer%';
#临时开启慢日志查询
set global slow_query_log=‘ON’;
#永久开启慢日志查询
vi /etc/my.cnf
long_query_time = 阈值
slow_query_log = 1
#慢查询日志仅输出到文本中(即:slow_query_log_file指定的文件)
set global log_output=’FILE’;
设置 slow_query_log_file输出位置
setslow_query_log_file = ‘路径.log’
#慢查询日志同时输出到文本和表中
set global log_output=’FILE,TABLE’;