MySql 的文件类型

本文详细介绍了MySQL数据库的各种文件类型,包括日志文件(错误日志、二进制日志、查询日志、慢查询日志)、数据文件(.frm、.myd、.myi、.ibd、.ibdata)以及replication相关文件。讨论了不同存储引擎的数据文件存储位置和格式,以及如何管理二进制日志,例如reset master、purge master logs等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 日志文件

1.错误日志文件 以 hostname.err 命名 –log-error[=/path_to/file_name]

它记录了MySQL数据库启动关闭信息,以及服务器运行过程中所发生的任何严重的错误信息。通常,当数据库出现问题不能正常启动,我们应当首先想到的就是查看错误日志。从下面可以看到此日志文件记录了MySQL数据库的启动和关闭信息。


2.二进制日志文件

binary log文件是以二进制格式保存的,我们需要借助mysqlbinlog这个工具进行查看,该日志里面记录的所有的DDL和DML语句,其中select语句除外。

在data目录下会发现有16个binary log文件,每次重启服务都会重新生成一个,或是文件达到最到限度也会安顺序自动生成下一个文件。在一个繁忙的OLTP系统中,每天会有大量的日志生成, 自然我们会想到它将会占用可观的磁盘空间,所以我们有必要定期对其进行清理。下面介绍几种方法。

Option 1. mysql> reset master; (删除所有binlog文件,然后从新生成一个从000001开始的文件)

Option 2. mysql> purge master logs to ‘mysql-bin.000017′; (删除mysql-bin.000017之前的所有日志)

Option 3. # mysqladmin flush-log (根据配置文件my.cnf中的expire_logs_day参数,触发日志文件更新,将从当前日期开始前多少天的日志全部删除)


3.查询日志

查询日志记录客户端操作的所有sql语句,包括select查询语句在内。(note: 查询日志纪录的所有数据库的操作,对于访问频繁的应用,该日志对系统性能会一定影响,建议通常关闭此日志。)

4.慢查询日志

慢查询日志里记录了执行时间超过long_query_time参数值的sql语句。慢查询日志可以有效的帮助我们发现实际应用中sql的性能问题,找出执行效率低下的sql语句。通过mysqlslowdump 分析日志文件

mysqldumpslow slow.log > slow.dat


二、数据文件

在 MySQL中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件。不同的 MySQL存储引擎有各自不同的数据文件,存放位置也有区别。多数存储引擎的数据文件都存放在和 MyISAM数据文件位置相同的目录下,但是每个数据文件的扩展名却各不一样。如 MyISAM用“ .MYD”作为扩展名, Innodb用“ .ibd”, Archive用“ .arc”, CSV用“ .csv”,等等。


1.“.frm” 文件

   与表相关的元数据( meta)信息都存放在“ .frm”文件中,包括表结构的定义信息等。不论是什么存储引擎,每一个表都会有一个以表名命名的“ .frm”文件。所有的“ .frm”文件都存放在所属数据库的文件夹下面。

2.“.myd” 文件

“ .MYD”文件“ .MYD”文件是 MyISAM存储引擎专用,存放 MyISAM表的数据。每一个 MyISAM表都会有一个“ .MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“ .frm”文件在一起 。

3.“.MYI”文件

“ .MYI”文件也是专属于 MyISAM存储引擎的,主要存放 MyISAM表的索引相关信息。对于 MyISAM存储来说,可以被 cache的内容主要就是来源于“ .MYI”文件中。每一个 MyISAM表对应一个“ .MYI”文件,存放于位置和“ .frm”以及“ .MYD”一样。

4.“.ibd”文件 和 ".ibdata" 文件

这两种文件都是存放 Innodb数据的文件,之所以有两种文件来存放 Innodb的数据(包括索引),是因为 Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储方式使用“ .ibd”文件来存放数据,且每个表一个“ .ibd”文件,文件存放在和 MyISAM数据相同的位置。如果选用共享存储表空间来存放数据,则会使用 ibdata文件来存放,所有表共同使用一个(或者多个,可自行配置) ibdata文件。 ibdata文件可以通过 innodb_data_home_dir和 innodb_data_file_path两个 参数共 同配置 组成, 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配置的最后,而且必须重启 MySQL才能完成 ibdata的添加工作。不过如果我们使用独享表空间存储方式的话,就不会有这样的问题,但是如果要使用裸设备的话,每个表一个裸设备 ,可能造成裸设备数量非常大,而且不太容易控制大小,实现比较困难,而共享表空间却不会有这个问题,容易控制裸设备数量。


三、replication 相关文件


四、其它文件

1、system config file

Mysql系统配置文件 一般都是在 "etc/my.cnf"

2、 pid 文件

pid 文件是mysqld 应用程序在 unix/linux 环境下的一个进程文件 ,和许多其他unix/linux 服务器端程序一样,它存放着自己的进程 id 

ps -ef|grep mysqd 查看   --pid-file=/var/lib/mysql/localhost.localdomain.pid

3、socket 文件

启动Mysql自动生成,用户在linux 环境下连接客户端连接可以不通过 TCP/IP 网络而直接使用 unix socket 来连接客户端















 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值