以下是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.pem 和 public_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_001 和 undo_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.000001、mysql-bin.000002、mysql-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  阅读(203)  评论(0)    收藏  举报