1. mysql数据库和其存储引擎innodb的各种类型文件有:
参数文件,日志文件,socket文件,pid文件,mysql表结构文件,存储引擎文件
2. 参数文件
mysql实例启动的时候,会先到配置文件去读一些参数,用来寻找数据库的各种文件所在的位置,以及制定某些初始化参数,这些参数通常是定义内存结构多大等设置信息
可以将参数看成是一个个的键值对,可以通过show variables 查看所有的参数,或者通过like过滤参数名。
mysql中参数可以分为两类:动态参数和静态参数,动态参数在mysql实例运行中进行设置,而静态参数说明在整个mysql 实例生命周期中都是不用也不能进行修改的,就好象是只读的,可以通过set 命令对动态参数进行设置, set read_buffer_size
3. 日志文件
常见日志有:错误日志,二进制日志,慢查询日志,查询日志等
错误日志,记录着mysql启动,运行,关闭过程中的信息,在遇到问题时,应该首先查看该错误日志文件,该错误日志文件不但记录了错误信息,还记录了一些警告或者正确的信息,可以通过show variables like 'log_error'来定位该文件。
4. 慢查询文件
慢查询文件给优化sql 语句带来好处,可以设置一个阈值,将运行时间超过该阈值的所有sql语句记录到慢查询日志中,该阈值可以通过参数long_query_time来设置,默认值为10,表示10s。默认mysql并没有启动慢查询日志,可以通过set 将其设置
5. 二进制日志
二进制记录了对数据库执行更改的所有操作,但是不包含select和show这类不改变数据库数据的操作,对于select和show这类不改变数据的查询,可以使用查询日志,二进制日志主要有两个作用:1) 恢复,某些数据的恢复需要二进制日志,如当一个数据库全备文件(完全备份的文件)恢复后,可以通过二进制文件进行point-in-time的恢复
2) 复制,通过复制和执行二进制文件使得一台远程的mysql数据库和另一台数据库实现实时同步
6. socket文件
mysql在unix系统下,本地连接mysql可以通过unix域套接字方式,这个套接字socket可以通过参数socket控制,一般在/tmp/下,名为 mysql.sock
7. 表结构定义文件
innodb存储引擎文件,包括重做日志文件和表空间文件