vlambda博客
学习文章列表

Mysql中的文件分类

  • 1.Mysql文件分类

  • 2.参数文件

  • 3.日志文件

  • 4.socket文件

  • 5.pid文件

  • 6.MySQL表结构文件

  • 7.存储引擎文件

1.Mysql文件分类



2.参数文件

定义

告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数等,比如my.cnf文件。

[root@jssdb01 ~]# mysql --help |grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 

动态参数与静态参数

动态参数:在MySQL实例运行中进行更改

静态参数:参数不能修改

动态参数修改通过set命令设置:

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | OFF   |
+---------------+-------+
1 row in set (0.00 sec)
-- set session级别
mysql> set session autocommit=1;
Query OK, 0 rows affected (0.00 sec)

mysql> select @@session.autocommit;
+----------------------+
| @@session.autocommit |
+----------------------+
|                    1 |
+----------------------+
1 row in set (0.00 sec)
mysql> select @@global.autocommit; 
+---------------------+
| @@global.autocommit |
+---------------------+
|                   0 |
+---------------------+
1 row in set (0.00 sec)
-- global没变化,将全局变量autocommit与会话变量一致
set @@global.autocommit=@@session.autocommit;

3.日志文件

定义用来记录MySQL实例对某种条件做出相应时写入的文件,如错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件等。

错误日志:记录MySQL的启动,运行和关闭中的错误信息

mysql> show variables like '%log_error%';
+---------------------+---------------------------------------+
| Variable_name       | Value                                 |
+---------------------+---------------------------------------+
| binlog_error_action | ABORT_SERVER                          |
| log_error           | /jssdb/mysql/log/3306/jssdb-error.err |
| log_error_verbosity | 3                                     |
+---------------------+---------------------------------------+

二进制日志:记录了对MySQL数据库执行更改的所有操作,但是不包括SELECT 和 SHOW这类操作,因为这类操作对数据本身并没有修改。然而,若操作本身并没有导致数据库发生变化,那么该操作可能也会写入二进制日志. `

慢查询日志:记录了所有对MySQL数据库请求的信息,无论这些请求是否得到了正确的执行。

4.socket文件

当用UNIX域套接字方式进行连接时需要的文件。

mysql> show variables like 'socket';
+---------------+-----------------------------------+
| Variable_name | Value                             |
+---------------+-----------------------------------+
| socket        | /jssdb/mysql/data/3306/mysql.sock |
+---------------+-----------------------------------+
1 row in set (0.00 sec)

5.pid文件

MySQL实例的进程ID文件。

mysql> show variables like 'pid_file'
+---------------+----------------------------------+
| Variable_name | Value                            |
+---------------+----------------------------------+
| pid_file      | /jssdb/mysql/data/3306/mysql.pid |
+---------------+----------------------------------+

6.MySQL表结构文件

存储引擎MYISAM的话,存在.frm文件,用来存放MySQL表结构定义文件。

7.存储引擎文件

存储记录和索引等数据,主要的文件如下:

表空间文件:InnoDB采用将存储的数据按表空间(tablespace)进行存放和设计。

mysql> show variables like 'innodb_data_file_path'
+-----------------------+----------------------------------------------------------+
| Variable_name         | Value                                                    |
+-----------------------+----------------------------------------------------------+
| innodb_data_file_path | ibdata1:200M;ibdata2:200M;ibdata3:200M:autoextend:max:5G 

重做日志文件 :记录了对于InnoDB存储引擎的事务日志。

mysql> show variables like '%innodb%log%';
+----------------------------------+------------+
| Variable_name                    | Value      |
+----------------------------------+------------+
| innodb_api_enable_binlog         | OFF        |
| innodb_flush_log_at_timeout      | 1          |
| innodb_flush_log_at_trx_commit   | 1          |
| innodb_locks_unsafe_for_binlog   | OFF        |
| innodb_log_buffer_size           | 16777216   |
| innodb_log_checksums             | ON         |
| innodb_log_compressed_pages      | ON         |
| innodb_log_file_size             | 209715200  |
| innodb_log_files_in_group        | 2          |
| innodb_log_group_home_dir        | ./         |
| innodb_log_write_ahead_size      | 8192       |
| innodb_max_undo_log_size         | 2147483648 |
| innodb_online_alter_log_max_size | 134217728  |
| innodb_undo_log_truncate         | ON         |
| innodb_undo_logs                 | 128        |
+----------------------------------+------------+
15 rows in set (0.00 sec)

UNDO回滚日志文件 提供回滚和多个行版本控制(MVCC)

mysql> show variables like '%undo%';
+--------------------------+------------+
| Variable_name            | Value      |
+--------------------------+------------+
| innodb_max_undo_log_size | 2147483648 |
| innodb_undo_directory    | ./         |
| innodb_undo_log_truncate | ON         |
| innodb_undo_logs         | 128        |
| innodb_undo_tablespaces  | 3          |
+--------------------------+------------+
5 rows in set (0.00 sec)

日志非常的重要,作为DBA总是需要查看日志来解决问题与深入优化。