文章目录
MySQL 文件介绍
在 MySQL 数据库和 InnoDB 存储引擎中,有很多种类型的文件,如:
-
参数文件(my.cnf / my.ini)
:MySQL的配置文件,包含服务器参数设置,如内存分配、连接数、字符集等;该文件通常在MySQL启动时读取; -
socket文件(.sock)
:用于进程间通信,允许客户端和MySQL服务器通过Unix套接字连接;MySQL数据库可以通过两种主要的连接方式进行访问:TCP/IP和Socket:
mysql> show variables like 'socket'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | socket | /tmp/mysql.sock | +---------------+-----------------+ 1 row in set (0.09 sec)
-
TCP/IP 连接是通过网络协议进行的,适用于远程连接到MySQL服务器。这种方式用于客户端和MySQL服务器在不同的物理主机上时的连接。支持跨网络连接,可用于互联网或本地网络。使用TCP/IP连接的常见命令:
mysql -h hostname -u username -p password -P port
-
Socket连接是通过Unix域套接字进行的,适用于在同一台计算机上的客户端和MySQL服务器之间的通信。这种方式通常比TCP/IP更快,因为它不需要网络协议栈的开销。
Socket文件的位置通常在MySQL的配置文件中指定,如:/tmp/mysql.sock;如果没有显式指定socket路径,MySQL会默认使用配置文件中的设置。使用Socket连接的常见命令:
mysql -u username -p password -P port --socket=/path/to/socket
-
-
pid文件(.pid)
:存放MySQL实例的进程ID,便于管理和监控。实例启动时,生成一个进程ID文件;mysql> show variables like 'pid_file'; +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | pid_file | 4fdafl461346.pid | +---------------+------------------+ 1 row in set (0.08 sec)
-
表结构文件(.frm)
:存储表的结构定义,每个表都对应一个 .frm 结尾的文件;show create table user_info;
-
存储引擎文件
.ibd 文件:如果使用 innodb_file_per_table 选项,InnoDB会为每个表创建一个独立的表空间文件,文件名以 .ibd 结尾,包含表的数据和索引;
ibdata1文件:如果不使用 innodb_file_per_table,所有表的数据和索引将存储在一个共享的系统表空间文件中,通常名为 ibdata1,此外还包含事务日志和元数据;
重做日志文件(redo log):用于支持事务的回滚;
-
日志文件
:错误日志文件(error log):记录服务器启动、运行和关闭过程中的错误信息;
查询日志文件(general log):记录所有执行的SQL查询;
慢查询日志文件(slow query log):记录执行时间超过指定阈值的查询;
二进制日志文件(binlog):记录所有更改数据库数据的操作,用于数据恢复和复制,包括事务信息和更改记录;
MySQL的复制、事务等重要功能都和日志文件相关。主要的日志文件包括:
二进制日志文件(binlog)
:记录所有对数据库数据进行更改的操作(如INSERT、UPDATE、DELETE),可用于数据恢复和主从复制。文件名通常为 mysql-bin.000001, mysql-bin.000002 等;错误日志文件(error log)
:记录MySQL服务器启动、运行和停止过程中的错误信息。文件名为 hostname.err;慢查询日志文件(slow query log)
:记录执行时间超过指定阈值的SQL查询。文件名为 hostname-slow.log;一般查询日志文件(general log)
:记录所有执行的SQL查询,包括连接和断开操作。文件名为 hostname.log;中继日志文件(relay log)
:在主从复制中,从服务器的中继日志记录从主服务器接收到的二进制日志。用于执行复制操作。文件名通常为 relay-bin.000001, relay-bin.000002 等;回滚日志文件(undo log)
:用于支持事务的回滚。当一个事务进行更改时,Undo日志会记录之前的状态,以便在事务失败或被回滚时恢复数据。命名格式为 ib_logfile0, ib_logfile1 等;重做日志文件(redo log)
:用于在系统崩溃后恢复未提交的事务。重做日志确保数据的持久性,记录已提交事务的变更。重做日志文件存储在 InnoDB 的系统表空间文件(如 ibdata1)中,具体文件不单独命名;
二进制日志(bin log)
概念
以二进制形式记录数据库的各种更改操作,但不会记录查询语句。
二进制日志 bi