注意一下都是以InnoDB引擎为例
一、数据文件
1. Docker启动MySQL后,在其映射的data目录下可以看到如下数据文件及文件夹
2. MySQL集群中会使用到auto.cnf文件中的uuid
3. ibdata1为系统表空间文件
4. ib_logfile0和ib_logfile1为redo_log文件,文件大小默认50M
5. binlog文件主要用于数据备份和主从复制,查看是否开启binlog命令:show variables like 'log_bin';
6. 像dbtest和mysql就是数据库文件夹,也就是没创建一个数据库就会有一个文件夹
7. 进入数据库文件夹,ibd存放数据的文件,MySQL8之后也会存放表定义等信息
8. 进入数据库文件夹,MySQL8后就没有存放表定义的frm文件了,而是把表定义信息放到了ibd文件中。详细信息参考文章mysql-8-frm-drop中如下
二、日志文件
1. 可以使用命令show variables like 'log_%';查看日志信息
2. 错误日志配置:log_error=/var/log/mysqld.log
3. 二进制日志(log_bin):主要用于数据备份和主从复制
4. 通用查询日志(general_log):记录用户所有操作,一般不建议开启,以免不必要的磁盘IO影响mysql性能
5. 慢查询日志(slow_query_log):通过设置时间(long_query_time,默认10秒),记录查询慢的操作