一.日志文件
1.1 错误日志
记录了mysql运行过程中较为严重的错误信息,以及启动和关闭的信息。
默认命名hostname.err
可以在参数文件中加上 --log-error[=file_name]修改目录名和文件名
flush logs 命令: 备份旧日志文件并生成新的日志文件。备份文件名以'.old'结尾
2. 二进制日志: Binary Log & Binary Log Index
binlog,在参数文件中添加"--bin-log[=file_name]"打开binlog
binlog:记录的是操作mysql的所有修改数据库的操作。
binlog附加选项参数
--max_binlog_size : binlog的日志文件大小,一个日志满了后会重新写入一个文件。
--binlog-do-db=db_name : 对某个db_name记录bin-log日志
--binlog-ignore-db=dbname : 与--binlog-do-db=db_name 完全相反,忽略db_name的binlog日志
mysql-bin.index 文件(binary log index)记录所有的Binary Log 的绝对路径
3.更新日志:update log
功能跟binlog类似,以文本方式记录。mysql 5.0版本后很少使用更新日志了。
4.查询日志
记录mysql中所有的query,通过"--log[=fina_name]"来打开该功能。记录了所有的query
包括select,所以体积很大,开启后对性能有较大的影响。慎用,一般用于跟踪某些特殊的sql性能
才会短暂开启该功能。默认的查询日志文件名为hostname.log
5.慢查询日志: slow query log
记录的是执行时间长的sql,也就是常说的slow query ,通过设 --log-slow-queries[=file_name]
来打开该功能,并设置记录位置和文件名,默认文件名为hostname-slow.log
格式为文本,记录了执行时间,消化时间,执行用户,链接主机信息等
6.innodb的在线redo日志:innodb redo log
redo记录了innodb所做的所有物理变更和事物信息,通过redo和undo信息。Innodb保证了在任何情况下
的事物的安全性。 默认存放在data目录下,可以通过innodb_log_group_home_dir来更改设置日志的存放位置
通过innodb_log_files_in_group设置日志的数量
mysql> show variables like 'innodb_log_files_in_group';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| innodb_log_files_in_group | 2 |
+---------------------------+-------+
1 row in set (0.00 sec)
二.数据文件
用来存放该数据库中各种表的数据文件。没个数据文件的扩展名不一样。如 MyISAM用 ".MYD"作为扩展名,innodb用".ibd",Archive用"".arc,CSV用".csv"等等
1.frm文件
每个表都会有一个以表名命名的.frm文件。所有的.frm文件都存放在所属数据库的文件夹下面。
2.myd文件
与之对应,同样存放于所属数据库的文件夹下,和".frm"文件在一起
3.myi文件
可以被cache的内容主要来源于.myi文件中。每一个MyISAM表对应一个.MYI文件.
4.ibd文件和ibdata文件
innodb的数据存储方式能通过配置来决定是使用共享表空间存放数据,还是独享表空间存储数据。
ibdata文件存放,所有表共同使用一个ibdata文件。
ibdata文件可通过 innodb_data_home_dir 和 innodb_data_file_path 两个参数共同配置组成;
innodb_data_home_dir:配置数据文件存放目总目录
innodb_data_file_path :配置每一个文件的名称
innodb_data_file_path可以一次配置多个ibdata文件。可以指定大小,自动扩展,但是innodb 限制了仅仅只有最后一个ibdata文件能够配置成自动扩展类型。当我们需要添加新的ibdata文件的时候 只能添加在 innodb_data_file_path 配置的最后,而且必须重启才能完成ibdata的添加工作。不过我们 使用独享表空间存储方式的话,就不会有这养的问题,但是用裸设备,每个标一个裸设备,可能造成裸设备 数量非常大,而且不容易控制大小,实现比较困难。
5.Replication相关文件
1.master.info文件
master.info文件存放于Slave端的数据目录下,里面存放了该Slave的Master端的相关信息。包括
Master的主机地址,链接用户,链接密码,链接接口,当前日志位置,已经读取到的日志位置等信息。
2.relay log和relay log index
SQL线程从该relay log 中读取并解析相应的日志信息,转化成Master所执行的SQL语句,然后在Slave端 应用
mysql-relay-bin.index 文件的功能 类似于mysql-bin.index同样记录日志的存放未指定绝对路径,relay log路径
3.relay-log.info 文件
某些管理操作随时能够获取当前复制相关信息。
三.其他文件
1. system config file
mysql系统配置文件my.cnf 在linux/Unix下默认存放在/etc目录下。
windows环境一般存放在c:/windows目录下面。my.cnf 文件包含多种参数组(group)
每一种参数组都通过中括号给定了固定组名,如[mysqld]组中包含了服务器启动的时候的
初始化参数,[client]组中包含着客户端工具程序可以读取的参数,此外还有其他针对于各种客户端软件
的特定参数组,如mysql程序使用[mysql],mysqlchk使用的[mysqlchk]等等。
2.pid file
pid file 是mysqld应用程序在Unix/Linux环境下的一个进程文件,和许多其他Unix/Linux服务端程序一样,
存放自己的进程id.
3.socket file
tcp/ip 网络而直接用unix socket 来链接Mysql