【MySQL常见疑难杂症】常见文件及其所存储的信息

1、MySQL配置文件的读取顺序

(非Win)/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/mysql/etc/my.cnf、~/.my.cnf

可以通过命令查看MySQL读取配置文件的顺序

bash 复制代码
[root@hadoop01 ~]# mysql --help |grep '/etc/my.cnf'
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
[root@hadoop01 ~]# 

2、数据文件,以及文件作用

数据文件:.frm、.MYI、.MYD、.ibd、.ibdata*、.ib_logfile*、undo*、ibtmp1、auto.cnf、db.opt、.CSM、.CSV、.TRN、.TRG。

🦎.frm:表结构定义文件。

🦎.MYI:MyISAM存储引擎索引文件。

🦎.MYD:MyISAM存储引擎数据文件。

🦎.ibd:InnoDB存储引擎独立表空间文件。

🦎.ibdata*:InnoDB存储引擎共享表空间文件。

🦎.ib_logfile*:InnoDB存储引擎redo log文件。

🦎undo*:InnoDB存储引擎独立undo文件。

🦎ibtmp1:InnoDB存储引擎临时表空间文件。

🦎auto.cnf:用于存放MySQL实例的全局唯一的server-uuid的文件。

🦎db.opt:用于存放MySQL实例的schema级别的默认字符集和默认校对规则的文件。

🦎.CSM:用于存放CSV存储引擎的元数据等相关信息的文件。

🦎.CSV:用于存放CSV存储引擎的数据文件,每行数据的列值之间使用逗号分隔。

🦎.TRN:用于存放与触发器相关的元数据。

🦎.TRG:用于存放触发器定义语句以及与定义相关的信息。

日志文件:error.log(error log)​、localhost.log(generallog)​、mysql-bin.(binlog)​、mysql-relay-bin.(relay log)​、slow-query.log(slow log)​。

🦎error.log(error log)​:错误日志,记录着MySQL启动之后mysqld打印的相关信息。错误日志文件在MySQL Server启动之后必须存在;否则,在使用mysqld_safe启动数据库时会因为找不到错误日志文件而报错,终止启动过程(如果直接使用mysqld程序来启动数据库,则不会有这个问题,因为mysqld进程发现错误日志不存在时会重新创建)​。

🦎localhost.log(general log)​:一般查询日志,启用该日志之后,在MySQL Server中执行的所有SQL语句都会被记录。查询日志可以在MySQL Server启动之后动态开关、自动创建。

🦎mysql-bin.(binlog)​:二进制日志,用于复制架构中的数据同步(从库I/O线程从主库读取)​,MySQL Server中涉及数据变更的SQL语句都会被记录,可以指定单个文件的大小,写满指定大小的文件之后自动切换到一个新文件。
🦎mysql-relay-bin.
(relay log)​:中继日志,用于复制架构中的数据同步(从库I/O线程从主库读取binlog之后写入自身的中继日志中)​。

🦎slow-query.log(slow log)​:慢查询日志,SQL语句的执行时间超过指定时间,被认为执行缓慢,会被记录到该文件中。

其他文件:mysql.pid(pid)​、mysql.sock(socket)​、mysql.sock.lock(socket lock)​。

🦎 mysql.pid(pid):MySQL Server启动之后存放进程号的文件。

🦎 mysql.sock(socket):MySQL Server启动之后用于本地UNIXDomain通信的sock文件。

🦎 mysql.sock.lock(socket lock):MySQL Server启动之后用于锁定本地socket文件的锁标记文件。这是MySQL 5.7.x版本中新增的,如果MySQL Server非正常关闭,该文件可能残留而导致MySQL重新启动失败,删除该文件重新启动即可。

在MySQL 8.0中,数据字典库performance_schema、mysql、sys中的所有MyISAM存储引擎都改为使用InnoDB存储引擎,且所有的.frm文件也不见了,表结构文件和视图等定义信息都被放到了InnoDB存储引擎的数据字典表中,performance_schema数据字典表和mysql下的general_log、 slow_log表特殊,因为不支持事务,所以使用了新的.sdi后缀的文件来代替,该文件中记录的是JSON格式的表结构描述信息

bash 复制代码
tree /home/mysql/data/mysqldata1/* | grep -Eiv '.frm|.myi|.myd|.ibd'
相关推荐
欢呼的太阳5 小时前
数据库设计Step by Step (10)——范式化
服务器·数据库·oracle
喜欢的名字被抢了6 小时前
MySQL基础入门:从零理解数据库与SQL
数据库·mysql·教程
Elastic 中国社区官方博客7 小时前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
DLYSB_7 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯
儒雅的大叔7 小时前
MySQL数据库InnoDB数据恢复工具使用总结
数据库·mysql·adb
观远数据8 小时前
ChatBI选型对比:从意图识别到SQL修复,六个维度打分决定是否值得投产
数据库·人工智能·sql
嘉&年华8 小时前
【第008篇】通过dexp和dimp命令导出和导入dmp文件(适用于达梦数据库)
数据库·sql
zhangjin11209 小时前
解决adb -s 按Tab键不自动选择设备的问题
adb
哥是强混9 小时前
Means:基于 .NET 10 打造的开源自部署 S3 兼容对象存储服务
网络·数据库·.net
ffqws_10 小时前
redis面试:如何保证双写一致
数据库·redis·缓存