以下是MySQL数据目录中每个文件的含义和作用详细解释:


​核心系统文件​

  1. auto.cnf
    • ​作用​​:存储MySQL实例的​​唯一UUID​​(Universally Unique Identifier)。
    • ​重要性​​:用于主从复制、组复制(Group Replication)中标识唯一节点,不可重复。

​SSL/TLS安全认证文件​

  1. ca-key.pem

    • ​作用​​:CA(证书颁发机构)的​​私钥文件​​,用于签署其他证书。
  2. ca.pem

    • ​作用​​:CA的​​证书文件​​,客户端和服务端用它验证对方身份。
  3. server-cert.pem

    • ​作用​​:服务端​​证书​​,由CA签名,用于向客户端证明身份。
  4. server-key.pem

    • ​作用​​:服务端​​私钥​​,用于建立加密连接。
  5. client-cert.pem

    • ​作用​​:客户端​​证书​​(若启用双向认证)。
  6. client-key.pem

    • ​作用​​:客户端​​私钥​​(用于双向认证)。
  7. private_key.pempublic_key.pem

    • ​作用​​:MySQL的​​RSA密钥对​​,用于密码加密传输(如sha256_password插件)。

​InnoDB引擎核心文件​

  1. #ib_16384_0.dblwr#ib_16384_1.dblwr

    • ​作用​​:​​Doublewrite Buffer文件​​,确保数据页写入的原子性,防止部分写(partial write)崩溃导致的损坏。
  2. ibdata1

    • ​作用​​:InnoDB​​系统表空间文件​​,存储数据字典、Change Buffer、Undo Logs(早期版本),以及未启用独立表空间的表数据。
  3. ib_buffer_pool

    • ​作用​​:保存​​缓冲池状态​​,服务器关闭时将内存中的热数据页转储到此文件,重启时预热加速恢复。
  4. ibtmp1

    • ​作用​​:InnoDB​​临时表空间​​,存放临时表及排序操作中的临时数据。
  5. #innodb_redo/

    • ​作用​​:目录存储​​重做日志文件(Redo Log)​​(MySQL 8.0+默认格式),记录所有修改操作用于崩溃恢复。
  6. #innodb_temp/

    • ​作用​​:存放InnoDB临时表空间(非用户临时表),如优化器临时数据结构。
  7. undo_001undo_002

    • ​作用​​:​​独立Undo表空间文件​​(MySQL 8.0+默认),存储事务回滚所需的Undo Logs(不再存储在ibdata1中)。

​MySQL系统数据库​

  1. mysql/

    • ​作用​​:mysql系统数据库的目录,存储用户权限、存储过程、事件等信息。
  2. mysql.ibd

    • ​作用​​:MySQL 8.0+中mysql系统数据库的​​独立表空间文件​​(替代早期ibdata1存储)。
  3. performance_schema/

    • ​作用​​:performance_schema数据库目录,存储性能监控指标(如锁、内存使用等)。
  4. sys/

    • ​作用​​:sys系统数据库目录,提供性能视图和工具(基于performance_schema)。

​二进制日志与主从复制​

  1. mysql-bin.000001mysql-bin.000002mysql-bin.000003

    • ​作用​​:​​二进制日志文件(Binlog)​​,记录所有更改数据的SQL语句,用于主从复制和点恢复。
  2. mysql-bin.index

    • ​作用​​:记录所有Binlog文件名的​​索引文件​​,帮助MySQL快速定位日志。

​运行状态与日志​

  1. mysqld.err

    • ​作用​​:MySQL​​错误日志文件​​,记录服务启动、运行中的错误和警告信息。
  2. mysql.pid

    • ​作用​​:存储MySQL服务器进程的​​进程ID(PID)​​,服务关闭时自动删除。
  3. mysql.sock

    • ​作用​​:​​Unix域套接字文件​​,用于本地客户端连接(如mysql -uroot)。
  4. mysql.sock.lock

    • ​作用​​:锁定mysql.sock文件的锁文件,防止多进程冲突。

​其他文件​

  1. mysql_summary.txt
    • ​作用​​:​​用户生成文本​​(非MySQL自动创建),可能包含状态摘要(如SHOW ENGINE INNODB STATUS输出)。
    • ​权限​​:由root用户创建(非MySQL自动生成)。

​关键目录总结​

  • #innodb_redo/#innodb_temp/​:8.0+新格式的InnoDB日志和临时文件目录。

  • ​系统数据库目录​​(mysql/performance_schema/sys/):存储核心元数据和监控信息。


​文件结构特点​

  • ​权限​​:多数文件属主为mysql用户,确保服务正常运行。

  • ​大小变化​​:

    • 动态增长:ibdata1(系统表空间)、ibtmp1(临时表空间)、Binlog文件。
    • 固定大小:#ib_16384_*.dblwr(Doublewrite文件大小固定)。

通过此结构,MySQL实现数据存储、事务安全、崩溃恢复和性能优化。

posted on 2025-06-12 16:26  LeeHang  阅读(81)  评论(0)    收藏  举报