本章将分析构成mysql数据库和innodb存储引擎表的各种类型文件。这些文件有:
1.参数文件
2.日志文件
3.socket文件
4.pid文件
5.MySQL表结构文件
6.存储引擎文件
3.1参数文件
1.什么是参数文件?
1.参数文件告诉mysql实例启动时在哪里可以找到数据库文件
2.参数文件指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型
mysql数据库的参数文件是以文本方式进行存储的。用户可以通过一些常用的文本编辑软件(vi和emacs)进行参数的修改
3.1.1什么是参数
1.什么是参数?
数据库的参数可以看成一个键值对(key-value)
例如:innodb_buffer_pool_size=1G;这里innodb_buffer_pool_size是键,1G为值
2.查看参数的方法?
1.可以通过show variables来查看数据库中的所有参数,也可以加上like来过滤参数名
2.可以通过select语句加上视图global_variables来查看,注意这时候一定要指定视图的列名
3.1.2参数类型
1.参数类型
mysql数据库中的参数可以分为两类:
1.动态参数--可以在mysql实例运行中进行修改
2.静态参数--在整个实例生命周期内都不得更改,有点类似只读
2.set
使用set命令对动态参数值进行修改,语法:
set
| [global | session] system_var_name =expr
| [@@global. | @@session. | @@] system_var_name =expr
global-基于整个实例的生命周期修改参数
session-基于当前的会话修改参数
3.2日志文件
用来记录mysql实例对某种条件做出响应时写入的文件,有
1.错误日志文件
2.二进制日志文件
3.慢查询日志文件
4.查询日志文件
3.2.1 错误日志
错误日志文件对mysql的启动,运行,关闭过程进行了记录,改文件不仅记录了所有的错误信息,也记录一些警告信息或正确的信息,参数名为'log_error'
3.2.2 慢查询日志
慢查询日志可帮助DBA定位可能存在问题的SQL语句,从而进行优化。例如,可以设置一个值(默认为10s),将运行时间超过该值的所有SQL语句都记录到慢查询日志中,再由用户进行检查。
3.2.3 查询日志
查询日志记录了所有对mysql数据库请求的信息
3.2.4 二进制日志
二进制日志记录了对mysql数据库执行更改的所有操作,但是不包括select和show操作。
二进制文件的作用:
1.恢复:某些数据的恢复需要二进制日志
2.复制:通过复制和执行二进制日志使一台远程的mysql数据库与一台mysql数据库进行实时同步
3.审计:用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入的攻击
3.3 套接字文件
在UNIX系统下本地连接mysql可以采用unix域套接字方式,这种方式需要一个套接字文件。
3.4 pid文件
当mysql实例启动时,会将自己的进程id写入一个文件中-该文件即为pid文件。
3.5 表结构定义文件
在mysql数据库中,每个表都会有对应的文件。其中有一个以frm为后缀名的文件,这个文件:
1.记录了该表的表结构定义
2.存放视图的定义
3.6 innodb存储引擎文件
之前介绍的文件都是mysql数据库本身的文件,下面要介绍的是innodb引擎中独有的文件,包括:
1.表空间文件
2.重做日志文件