1.auto.cnf
MySQL启动时,会自动从data_dir/auto.cnf 文件中获取server-uuid值,并将这个值存储在全局变量server_uuid中。如果这个值或者这个文件
不存在,那么将会生成一个新的uuid值,并将这个值保存在auto.cnf文件中。这个uuid的作用是在mysql复制时如果发生故障,slave可以通过uuid
辨识master的日志。

2.binlog.index
用于记录MySQL产生的binlog日志的具体位置,binlog是MySQL记录所有操作的逻辑日志,主要用于故障恢复和主从同步时使用,由于MySQL数据库
是一个多类型存储引擎并存的数据库,binlog就起着一个实例(instance)总体重做信息的角色。

3.*.pem文件
此类文件是在MySQL8.0以后加入的,用于ssl认证登陆

4.ib_buffer_pool
mysql innodb buffer pool 预热,当mysql数据库innodb buffer pool达到一定量级之后再异常宕机重启之后,就会面临一个严峻的问题,就
是如何快速预热buffer pool,光靠innodb是不够的,这时就需要将innodb buffer pool存储到存储中,在数据文件中进行备份,在重启时innodb
直接读取此文件,但是要保证innodb版本 page页大小,buffer pool大小前后一致。

innodb_buffer_dump_at_shutdown:默认为关闭OFF。如果开启该参数,停止MySQL服务时,InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘。

innodb_buffer_pool_load_at_startup:默认为关闭OFF。如果开启该参数,启动MySQL服务时,MySQL将本地热数据加载到InnoDB缓冲池中。

innodb_buffer_pool_load_now:默认为关闭OFF。如果开启该参数,停止MySQL服务时,以手动方式将InnoDB缓存池中的热数据保存到本地硬盘。

innodb_buffer_pool_filename:如果开启InnoDB预热功能,停止MySQL服务时,MySQL将InnoDB缓冲池中的热数据保存到数据库根目录中,默认
文件名为ib_buffer_pool.

innodb_buffer_pool_load_aborr:默认为关闭OFF。如果开启该参数,即便开启InnoDB预热功能,启动MySQL服务室,MySQL也不会将本地硬盘的
热数据加载到InnoDB缓冲池中。

5.#ib_16384_0.dblwr #ib_16384_1.dblwr
Doublewrite buffer是一个存储,InnoDB将页写入InnoDB数据文件适当位置之前,会将缓冲池中页刷新到该存储中。如果操作系统,存储子系统,
或者mysqld进程在页写入中途崩溃,InnoDB可以在崩溃恢复中从doublewrite buffer中找到一份好的备份。
虽然数据写了2次,doublewrite buffer不会需要2倍的IO负载和2倍的IO操作。数据将以一个大的连续块写入到doublewrite buffer中,操作系
统单次调用fsync()(除非innodb_flush_method被设置为O_DIRECT_NO_FSYNC)。
MySQL8.0.20之前,doublewrite buffer存储在InnoDB 系统表空间中。从MySQL8.0.20开始,doublewrite buffer存储在双写文件中。

doublewrite buffer配置提供以下参数:
innodb_doublewrite:控制是否启用doublewrite buffer。默认启用。设置innodb_doublewrite=0或者启动MySQL服务时加
--skip-innodb-doublewrite选项禁用。

如果doublewrite buffer位于支持原子写的Fusion-io设备上,则自动禁用doublewrite buffer,并使用Fusion-io原子写来执行数据文件写。
innodb_doublewrite_dir:8.0.20引入的,定义了InnoDB创建双写文件的目录。如果目录没有指定,双写文件创建在innodb_data_home_dir目
录下,没有指定默认在数据目录下。
哈希符'#'会自动创建在指定目录名前缀,避免与shema名冲突。然而,如果使用了'.', '#'. 或者'/'指定了目录前缀,则不在目录名前缀没有哈希
'#'

innodb_doublewrite_files:参数定义了双写文件的数量。默认情况下,每个缓冲池实例都会创建2个双写文件:一个刷新列表双写文件和一个LRU
列表双写文件。

刷新列表双写文件用于从缓冲池刷新列表中刷新页。刷新列表双写文件默认大小是InnoDB page size * doublewrite page bytes.

LRU列表双写文件是用于刷新从缓冲池LRU列表的页。它也包括单个页刷新的槽。LRU列表双写文件默认大小为InnoDB page size * (doublewrite
pages + (512 / the number of buffer pool instances)),512是为单个页刷新保留的槽的总数。

至少有2个双写文件。双写文件的最大数量是缓冲池实例的两倍。(缓冲池实例的数量由参数innodb_buffer_pool_instances控制)

双写文件有以下格式:#ib_page_size_file_number.dblwr。例如,下面的双写文件是在一个InnoDB页大小为16KB,单个缓冲池的MySQL实例上
创建:

innodb_doublewrite_pages:MySQL8.0.20引入的,控制每个线程双写页的最大数量。如果这个值没有指定,innodb_doublewrite_pages设置
为innodb_write_io_threads值。这个参数用于高级性能调优。默认值已经适用于大多数用户。

innodb_doublewrite_batch_size:参数MySQL8.0.20引入的,控制一批写入双写页的数量。这个参数用于高级性能调优。默认值已经适用于大多
数用户。
参考:https://dev.mysql.com/doc/refman/8.0/en/innodb-doublewrite-buffer.html

6.ibdata1
innodb默认共享表空间,在不指定下默认所有表共享一个表空间,但是一般生产环境中建议修改默认值,每个表一个表空间

7.ib_logfile*
innodbredo日志,区别于binlog,由于mysql是一个支持多存储引擎共存的数据库,所以innodb redo只记录innodb 存储引擎的重做日志,并且
redo是一个物理日志,通过xid记录数据文件位置和binlog中的位置,而binlog记录的是记录mysql全局的变化量,是一个逻辑日志。实际中mysql
中由于两阶段commit的存在弱化了innodb redo的管理,也不需要像Oracle中需要备份redo日志,mysql中只需要备份binlog日志即可。

8.ibtmp1
innodb临时表空间

9.undo_001
innodbundo表空间