MySQL——MySQL 日志

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值