MySql数据库——文件

MySql数据库(或者MySql服务器或者MySql实例)的文件类型主要有以下几种:
参数文件:告诉MySql实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。
日志文件:用来记录MySql实例对某种条件做出响应时写入的文件,如错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件等。
socket文件:当用UNIX域套接字方式进行连接时需要的文件。
**pid文件:**MySql实例的进程ID文件。
MySql表结构文件:用来存放MySql表结构定义文件。
存储引擎文件:因为MySql存储引擎的关系,每个存储引擎都会有自己的文件来保存各种数据。这些存储引擎真正存储了记录和索引等数据。

1、参数文件

MySql实例启动时,数据库会先去读取一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等。在默认情况下,MySql实例会按照一定的顺序在指定的位置进行读取,可以通过下面命令来寻找。

root@TryHard:~# mysql --help

下面是部分输出:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

MySql实例可以不需要参数文件,这时所有的参数值取决于编译MySql时指定的默认值和源代码中指定参数的默认值。
MySql数据库的参数文件是以文件方式进行存储的,可以直接通过文本编辑软件进行参数的修改。

  • 什么是参数

可以把数据库参数看作是一个键值对(key/value)。比如下面的参数值为134217728,也就可以表示为innodb_buffer_pool_size=134217728。

mysql> show variables like 'innodb_buffer_pool_size'; 
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)

通过下面的命令来查看数据库中所有的参数:

mysql> show variables;

mysql> select * from GLOBAL_VARIABLES;

可以通过使用like来查看某个特定的参数。

mysql> select * from GLOBAL_VARIABLES where variable_name like 'innodb_buffer%';
+------------------------------+----------------+
| VARIABLE_NAME                | VARIABLE_VALUE |
+------------------------------+----------------+
| INNODB_BUFFER_POOL_SIZE      | 134217728      |
| INNODB_BUFFER_POOL_INSTANCES | 1              |
+------------------------------+----------------+
2 rows in set (0.00 sec)

show variables命令比较简单。

  • 参数类型

MySql数据库中的参数可以分为两类:
(1)动态参数
(2)静态参数
动态参数意味着可以在MySql实例运行中进行更改,静态参数意味着在整个实例的生命周期内都不能进行更改。
可以通过set命令对动态的参数值进行修改,下面是语法:

set global.system_var_name=value;
set session.system_var_name=value;
set @@global.system_var_name=value;
set @@session.system_var_name=value;

global和session关键字,它们表明该参数的修改是基于当前会话还是整个实例的生命周期。有些动态参数只能在会话中进行修改,如autocommit;而有些参数修改完后,在整个实例生命周期中都会生效,如binlog_cache_size;而有些参数既可以在会话中又可以在整个实例的生命周期内生效,如read_buffer_size。
即使在正实例生命周期中生效,但是如果重启数据库,它还是会从参数文件中读取参数的值。所以,如果想永久修改参数,则需要修改参数文件的内容。

静态变量不能修改,否则会出现下面的错误提示。

mysql> set global datadir='/db/mysql';
ERROR 1238 (HY000): Variable 'datadir' is a read only variable

2、日志文件

MySql中常见的日志文件有:
(1)错误日志 error log
(2)二进制日志 binlog
(3)慢查询日志 slow query log
(4)查询日志log

- 错误日志

错误日志文件对MySql的启动、运行、关闭过程进行了记录。在遇到问题时应该首先查看该文件以便于定位问题。该文件不仅记录了所有的错误信息,也记录一些警告信息或正确的信息。
可以通过下面命令定位该文件:

mysql> show variables like 'log_error';
+---------------+--------------------------+
| Variable_name | Value                    |
+---------------+--------------------------+
| log_error     | /var/log/mysql/error.log |
+---------------+--------------------------+
1 row in set (0.00 sec)

可以看到错误文件的路径和文件名。

下面是查看该文件最后20行:

root@TryHard:~# tail -n 20 /var/log/mysql/error.log
161204 17:24:14  InnoDB: Shutdown completed; log sequence number 2448358
161204 17:24:14 [Note] /usr/sbin/mysqld: Shutdown complete

161204 17:25:02 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
161204 17:25:02 [Note] Plugin 'FEDERATED' is disabled.
161204 17:25:02 InnoDB: The InnoDB memory heap is disabled
161204 17:25:02 InnoDB: Mutexes and rw_locks use GCC atomic builtins
161204 17:25:02 InnoDB: Compressed tables use zlib 1.2.8
161204 17:25:02 InnoDB: Using Linux native AIO
161204 17:25:02 InnoDB: Initializing buffer pool, size = 128.0M
161204 17:25:02 InnoDB: Completed initialization of buffer pool
161204 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值