MySQL的物理文件
MySQL数据库由各种类型文件组成,具体如下:
- 参数文件:MySQL实例启动时从参数文件中读取各种配置参数
- 日志文件:MySQL日志文件包括错误日志、二进制日志、慢查询日志、查询日志文件
- socket文件:socket是在Unix/Linux 环境下客户端可以直接用socket 来连接MySQL
- pid文件:是MySQL实例的进程文件
- InnoDB文件
1、参数文件
MySQL参数文件my.cnf,MySQL实例启动时从参数文件中读取各种配置参数,这些参数通常定义了内存、最大连接数等。可以把数据库参数看成一个键/值对。
MySQL的参数分为动态参数和静态参数两类:
动态参数:可以在MySQL运行中进行设置
静态参数:不能在数据库运行中修改,可以在配置文件中设置
参数设置语法如下:
set [global | session] system_var_name = expr
参数的设置分为基于全局和基于当前会话。
如设置数据库的最大连接数为500:
set global max_connections = 500;select @@max_connections;
2、日志文件
MySQL数据库日志文件记录了数据库的各种类型的操作,日志文件可以帮助DBA进行数据库的运行情况分析和进行问题排查。MySQL数据库中常见的日志文件有:
- 错误日志
- 二进制日志
- 慢查询日志
- 查询日志
1 错误日志
错误日志记录了MySQL的启动、运行和关闭的过程,它还包含问题信息,例如在服务器启动和关闭期间以及服务器运行期间发生的错误,警告等信息。
错误日志文件的默认命名host_name.err
我们可以通过以下命令查看错误日志文件的路径和文件名:
show variables like 'log_error';
2. 二进制日志
二进制日志(binary log)记录了对MySQL数据库执行修改的所有操作。二进制日志默认情况没有启用,需要手动配置来启用。
二进制日志的作用:
- 复制:主服务器将其二进制日志中包含的事件发送到从属服务器,从属服务器执行这些和主服务器相同的数据变更操作。
- 恢复:某些数据的恢复操作需要使用二进制日志。例如,还原备份后,通过二进制日志执行备份后变更记录的恢复。
开启二进制日志:
--log-bin[=base_name]
设置二进制日志的其他参数:
- max_binlog_size
- binlog_cache_size
- sync_binlog
- binlog-do-do
- binlog-ignore-db
- log_slave_update
- binlog_format
max_binlog_size : 设置二进制日志文件的最大值,一个日志满了后会产生新的二进制日志文件
binlog_cache_size:设置在事务期间,用于保存对二进制日志的更改的缓存的大小
sync_binlog:控制MySQL服务器将二进制日志同步到磁盘的频率
binlog-do-do/ binlog-ignore-db:表示需要写入或忽略写入哪些数据库到的二进制日志
log_slave_update:从服务器从主服务器收到的更新是否应记录到从服务器自己的二进制日志中
binlog_format:设置二进制日志的格式,可以是STATEMENT,ROW或MIXED
3.慢查询日志
慢查询日志是运行时间超过 long_query_time(秒钟)值的SQL语句,有了慢查询日志记录,就可以对慢SQL进行优化。
开启慢查询日志:
slow_query_log=1slow_query_log_file= mysql-slow.loglong_query_time= 5
4.查询日志
查询日志记录了MySQL中所有的查询操作
开启查询日志:
general_log=ongeneral_log_file=/var/log/mysql/general_log_sql.log
3、socket文件
socket是在Unix/Linux 环境下客户端可以直接用socket 来连接MySQL
show variables like 'socket';
4、pid文件
pid 文件是MySQL应用程序在Unix/Linux环境下的一个进程文件存放自己的进程id。
5、InnoDB文件
1.表结构文件
表结构文件(.frm):用于存放表结构定义信息。
2.表空间文件
InnoDB将数据存放到表空间中,默认表空间名为ibdata1的文件,如果设置了innodb_file_per_table,则每个表都有一个独立表空间,独立表空间命名为’表名.ibd’。表空间中存放表的数据、索引等信息。
3.重做日志文件
重做日志(redo log file)是基于磁盘的数据结构,在崩溃恢复期间用于纠正不完整事务写入数据。默认情况下,重做日志在磁盘上由ib_logfile0和ib_logfile1的文件组成。