简介
本文主要讲解Mysql主要的文件,分为Mysql Server相关文件和InnoDB存储引擎相关文件。
Mysql Server相关文件
配置文件
定义mysql全局配置信息,例如端口定义port=3306
。在linux下,一般放在/etc/my.cnf
,/etc/mysql/my.cnf
(可以通过mysql--help | grep my.cnf
查看)。
日志文件
用来记录某些请求/响应信息的文件,主要分为:
- 错误日志:对mysql的启动、运行、关闭过程进行了记录。该文件不仅记录了所有的错误信息,还记录一些告警信息或者正确的信息,可以通过
show variables like '%log_error%';
查看错误日志的存放路径,默认命名主机名.err
。 - 慢查询日志:可以定位可能存在问题的SQL语句,从而进行SQL语句层面的优化。
- 主要用来记录查询时间>
long_query_time
(默认10秒)的SQL。 -
slow_query_log=ON
开启/关闭慢查询日志,默认是开启的。 - 可以通过
show variables like '%slow_query_log_file%';
查看慢查询日志存放位置,接着通过mysqldumpslow /data/mysql/mysql-slow.log
查看详细信息,也可以通过表来查看select * from mysql.slow_log;
。 - 另外还有一个重要的配置参数
log-queries-not-using-indexes
:未使用索引的查询也被记录到慢查询日志中(可选项)。
- 主要用来记录查询时间>
- 查询日志:记录所有的请求响应信息,默认命名
主机名.log
。 - 二进制日志:记录了对mysql执行更改的操作(详细信息参考这篇文章:Mysql——binlog)。主要有以下几个作用:
- 恢复:可以通过point in time进行某些数据的恢复;
- 复制:mysql主从复制是基于二进制日志复制实现实时同步的;
- 审计:用户可以通过二进制日志进行审计,判断是否有注入攻击。
表结构文件
用来存放mysql表结构定义,文件后缀.frm
;
socket文件
当用UNIX域套接字方式进行连接时需要的文件;可以通过show variables like 'socket';
查看,一般放到/tmp/mysql.sock;
pid文件
Mysql实例的进程文件;可以通过show variables like 'pid_file';
查看。
InnoDB存储引擎相关文件
- 表空间文件
- 重做日志文件
详细信息可以参考这篇文章Mysql——InnoDB存储引擎架构