文件

文件

参数文件

MySQL数据库参数文件的作用和Oracle数据库的参数文件极其相似,不同的是,Oracle实例在启动时若找不到参数文件,是不能进行装载操作的;MySQL数据库略有不同,MySQL实例可以不需要参数文件,这时所有的参数值取决于编译MySQL时指定的默认值和源代码中指定参数的默认值。

什么是参数

简单说,可以将数据库参数看成一个键/值(key/value)对,比如InnoDB存储引擎很重要的一个参数innodb_bffer_pool_size=1G。可以通过命令show variables查看数据库中的所有参数,也可以通过like来过滤参数名。

参数类型

MySQL数据库中的参数可以分为两类:

  • 动态(dynamic)参数
  • 静态(static)参数

动态参数意味着可以再MySQL实例运行中进行修改的,静态参数说明在整个实例生命周期内都不得进行更改,就好像是只读文件。

日志文件

错误日志

错误日志文件对MySQL数据库的启动、运行、关闭过程进行了记录,不仅记录了所有的错误记录,也记录了一些警告信息或正确的信息,可以通过 show variables like ‘log_error’ \G 命令定位该文件,如下:

mysql> show variables like ‘log_error’ \G;
***************** 1. row *****************
Variable_name: log_error
Value: /usr/local/mysql/data/mysqld.local.err
1 row in set (0.02 sec)
ERROR:
No query specified

慢查询日志

慢查询日志可以帮助DBA定位可能存在问题的SQL语句,从而进行SQL语句层面的优化。例如,可以在数据库实例启动时设一个阈值,将运行时间超过该值得所有SQL语句都记录到慢查询的日志文件中去。该阈值可以通过long_query_time来设置,默认值是10,代表10秒。
默认情况下MySQL数据库并不启动慢查询日志,需要手动将这个参数设定为ON,如下:

mysql> show variables like ‘long_query_time’\G;
***************** 1. row *****************
Variable_name: long_query_time
Value: 10.000000
1 row in set (0.00 sec)
ERROR:
No query specified

需要注意的是,首先,设置long_query_time这个阈值之后,MySQL数据库会记录运行时间超过该值的所有SQL语句,但运行时间刚好等于这个时间的并不会被记录下来;其次,从MySQL5.1版本开始,long_query_time开始以微秒记录SQL语句的运行时间。MySQL 5.6.5版本开始新增一个参数log_throttle_queries_not_using_indexes,用来表示每分钟允许记录到slow log的且未使用索引的SQL语句的次数,该值默认是0,表示没有限制。

查询日志

查询日志记录了所有的对MySQL数据库请求的信息,无论这些信息是否得到了正确的执行,默认文件名为为主机名.log。

二进制日志

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

套接字文件

在UNIX系统下本地连接MySQL数据库实例可以采用UNIX域套接字的方式,这种方式需要一个套接字(socket)文件,套接字文件可由参数socket控制,如下:

mysql> show variables like ‘socket’\G;
***************** 1. row *****************
Variable_name: socket
Value: /tmp/mysql.sock
1 row in set (0.00 sec)
ERROR:
No query specified

pid文件

当MySQL实例启动时,会将自己的进程ID写入一个文件中——即该文件为pid文件,该文件可以有参数pid_file参数控制,默认位于数据库目录下,文件名为主机名.pid,如下:

mysql> show variables like ‘pid_file’\g;
+—————+—————————————-+
| Variable_name | Value |
+—————+—————————————-+
| pid_file | /usr/local/mysql/data/mysqld.local.pid |
+—————+—————————————-+
1 row in set (0.01 sec)

表结构定义文件

因为MySQL插件式存储引擎的体系结构的关系,MySQL数据的存储是根据表进行的,每个表都会有与之对应的文件。但是不管采用何种存储引擎,MySQL都有一个以frm为后缀的文件,这个文件记录了该表的表结构定义。frm还用来存放视图的定义,该文件是文本文件,可以直接使用cat等命令打开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值