Mysql 数据库的文件包括:
1、参数文件:my.cnf
2、日志文件,包括错误日志、查询日志、慢查询日志、二进制日志
3、Mysql表文件:用来存放mysql表结构的文件,一般以.frm为后缀
4、Socket文件:当用unix域套接字方式进行连接时需要的文件
5、Pid文件:mysql实例的进程ID文件
6、存储引擎文件:每个存储引擎都有自己的文件夹来保存各种数据,这些存储引擎真正存储了数据和索引等数据。
参数文件
可以通过命令行“mysql --help | grep my.cnf”查看my.cnf文件的位置;
Mysql在启动时可以不需要参数文件,但是如果在默认的数据库目录下找不到mysql架构,则启动会失败;
Mysql的参数可以通过“show variables”来查看,由于从mysql5.1版本开始,可以通过information_schema架构下的GLOBAL_VARIABLES视图来进行查找,所以也可以这样查看
“select * from information_schema.global_variables”;
Mysql 的参数类型:分为动态(dynamic)和静态参数(static),动态参数意味着可以再mysql实例运行中进行更改;静态参数说明在整个实例声明周期内都不得进行更改,就好像是只读的。在动态参数中,有些参数修改可以是基于回话的也可以是基于整个实例的生命周期。Mysql5.1的动态参数在这里。
Mysql表文件
不论采用何种搜索引擎,mysql都有一个以frm为后缀名的文件,这个文件记录了该表的表结构定义文件。值得注意的是,frm还可以用来存放视图的定义。
Socket文件
通过使用命令“show variables like ‘socket’;”查看socket文件的目录
Pid 文件
当mysql实例启动时,会将自己的进程ID写入一个文件中,该文件即为pid文件,文件名为主机名.pid,通过命令“show variables like ‘pid_file’;”来查看。
日志文件
1、错误日志,该文件对mysql的启动、运行、关闭过程进行了记录,在遇到问题时,首先应该查看此文件,可以通过“show variables like ‘log_error’;”来定位该文件。
2、慢查询日志,该文件记录了所有运行时间超过阀值的SQL语句,该阀值可以通过参数long_query_time来设置。默认值为10秒。
但是在默认情况下,mysql并不启动满查询日志,需要手工修改这个参数;
需要注意的两点内容:首先,慢查询日志记录的是大于阀值的SQL语句,而不是大于等于!!!其次,从mysql5.1开始,long_quey_time开始以微秒记录sql语句运行时间。
另一个和慢查询相关的参数是log_queries_not_using_index,如果运行的SQL语句没有使用索引,则mysql则同样会将这条SQL语句记录到慢查询日志文件中;
在慢查询日志文件逐渐增大时,可考虑使用工具mysqldumpslow工具帮助我们分析。
该工具的使用您可以使用 “man mysqldumpslow” 或者去这里了解。
Mysql5.1开始可以将慢查询的日志记录放入一张表中,该表在mysql.slow_log表中。
是否放在表中由参数‘log_output’来决定;参数log_output指定了慢查询输出的格式,默认为FILE,也可以将其设置为TABLE,就可以去Mysql.slow_log中去查询了。
同样也可以将查询日志的记录放入mysql架构下的general_log表。
3、查询日志
查询日志记录了所有对Mysql数据库请求的信息。
4、二进制日志
因为二进制日志太重要了,在这里暂且不提。
InnoDB存储引擎文件
这些文件包括表空间文件和重做日志文件。表空间的介绍请看Mysql InnoDB存储结构总结,重做日志也很重要,在这里暂且不提。