Mysql文件物理组成


以下的所有[=file_name],都表示日志存放的绝对路径。

错误日志 Error Log

记录了mysql Server 运行中所有警告和错误信息,以及mysql server 每次启动和关闭的详细信息。
通过--log-error[=file_name] 开启。log默认存放在数据目录下,以hostname.err命名。

二进制日志 binlog

通过 --log-bin[=filename]开启,mysql会将修改数据库数据的query以二进制的形式记录到日志里。还包含每条query的执行时间,所消耗的资源,和事务信息,所以binlog是事务安全的。
--max_binlog_size 设置binlog的最大存储上限
--binlog-do-db=dbname 只针对该db记录binlog
--binlog-ignore-db=dbname 不记录某个db的binlog

mysql-bin.index 记录所有的bin log的绝对路径,mysql各种线程会根据它来找到bin log

查询日志 query log

通过 --log[=filename]开启,由于记录了所有的query,体积大,开启后对性能有较大影响,慎用。

慢查询日志 slow query log

通过 --log-slow-queries[=filename]开启,记录执行时间较长的query。
mysqlslowdump: 分析慢查询日志的工具程序

innodb 的redo log和undo log

用于保障事务安全性。

数据文件


.frm 文件

无论什么存储引擎:每个表都有一个以表名命名的 frm文件,存放表的元数据(meta)信息,包括表结构的定义信息等。

.ibd 文件 和 ibdata 文件 (innodb专属)

通过独享表空间形式:
通过innodb_file_per_table=ON 来开启
使用ibd文件来存放数据,且每个表一个ibd文件。

共享形式:
使用ibdata文件,所有表共同使用一个(或者多个、自行配置)ibdata文件。
innodb_data_home_dir ibdata文件目录
innodb_data_file_path 每一个ibdata文件的名称,可以配置多个。
目录为空的话,file_path就需要填写绝对路径了。
可以指定ibdata文件的大小,只有最后一个ibdata文件可以配置成自动扩展类型。

replication 相关文件

master.info文件

存放该slave的Master端信息,master的主机地址、连接信息、日志位置

relay log 和 relay log index

mysql-relay-bin:存放slave端的IO进程从master端所读取的binlog信息。
然后slave的sql解析线程,从relaylog中读取并解析相应的日志信息,转化成master所执行的sql,接着在slave端应用。

mysql-relay-bin-index 类似 mysql-bin-index。记录relay log存放的绝对路径

relay-log.info文件

记录relay-log的相关信息,方便线程随时获取。

其他文件

  • system config file 系统配置文件my.conf,位于/etc下。
  • pid 文件,是mysqld应用在Unix环境下的一个进程文件,存放着自己的进程id
  • socket 文件,用户在Unix环境下的客户端连接可以不通过tcp/ip,而直接使用Unix Socket来连接mysql

成为你想看到的世界变革力量

创建者:万乐荣
最后更新时间 : 2018年8月9日 1:47

评论

黑羊  2018年10月28日 15:59
只有笔记,不能在计算机上一步步的演示吗?