Heim >Datenbank >MySQL-Tutorial >MySQL文件_MySQL

MySQL文件_MySQL

WBOY
WBOYOriginal
2016-06-01 13:04:31860Durchsuche

1.参数文件   这是MySQL启动时需要读取的配置文件,可以通过mysql --help | grep my.cnf来查看启动时查找的顺序。这些参数的值取决于编译MySQL时指定的默认值或源代码中指定参数的默认值。可以通过show variables查看数据库中的参数,也可以通过like来过滤参数名,还可以通过information_schema.global_variables视图来查找。MySQL参数可以分为两类:   a.静态(static)参数   在整个实例生命周期内都不得更改,只读(read only)的。   b.动态(dynamic)参数   在整个实例生命周期内可以更改。通过命令SET | [global | session] system_var_name=expr | [@@global. | @@session. |@@]system_var_name=expr来改变值。其中global表示该参数是基于整个实例的生命周期的,而session是基于当前回话的。   2.日志文件   记录了影响MySQL数据库的各种类型活动。以下配置文件的参数影响二进制日志记录的信息和行为:max_binlog_size、binlog_cache_size、sync_binlog、binlog-do-db、binlog-ignore-db、log-slave-update、binlog_format。这些参数的含义是什么,我会在以后的博客中有一篇专门来讲解参数,这里就不多说啦。常见的日志文件有:   a.错误日志(error log)   记录了MySQL的启动、关闭、运行过程。在遇到问题时应该首先查看该文件以便于定位问题。该文件不仅记录了所有的错误信息,也记录一些警告信息或正确的信息。通过show variables like 'log_error'来定位该文件的位置。在默认情况下,错误文件的文件名为服务器的主机名。   b.慢查询日志(slow query log)   记录可能存在"问题"的SQL语句,从而进行SQL语句层面的优化。其格式有:FILE和TABLE(information_schema.slow_log)两种格式,可以通过参数log_output(动态参数)选择输出的格式。使用mysqldumpslow命令来查看慢日志文件的内容。被记录到该文件的几种情况:   1.通过参数long_query_time来设置被记录到该文件的阀值。会记录运行时间超过(大于)该值的所有SQL语句。   2.通过参数long_queries_not_using_indexes来设置将没有使用索引的SQL语句记录到慢日志文件中。MySQL5.6版本新增一个参数log_throttle_queries_not_using_indexes来设置每分钟记录到slow log的且未使用索引的SQL语句的次数(主要是为了频繁记录防止slow log文件不断增大)。   3.通过参数long_query_io指定将超过设置逻辑IO次数的SQL语句记录到slow log文件中。   c.二进制日志(binlog)   记录了对MySQL数据库执行IUD操作。其作用主要有以下几种:   1.恢复(recovery) 某些数据的恢复需要二进制日志.如,在一个数据库全备文件恢复后,用户可以通过二进制日志进行point-in-time的恢复   2.复制(replication) 主要用在master-slave上。   3.审计(audit) 通过二进制日志中的信息来进行审计,判定是否有对数据库进行注入的攻击。   d.查询日志(log)   记录了所有对MySQL数据库请求的信息,无论这些请求是否得到正确的执行。默认文件名为主机名.log。从MySQL5.1版本开始也可以将该日志记录到information_chema.general_log表中。   3.套接字文件   在unix下本地连接MySQL可以采用unix域套接字方式,这种方式需要一个套接字(socket)文件。套接字文件可有参数socket控制一般在/tmp目录下且名称为mysql.sock。   4.pid文件   当MySQL实例启动是,会将自己的进程ID写入一个文件中(pid文件)。该文件可有参数pid_file控制,默认位于数据库目录下,文件文件名为主机名.pid.   5.表结构定义文件   MySQL数据的存储是根据表进行的,每个表都会有与之对应的文件。不论表采用何种存储引擎,MySQL都有一个以.frm为后缀名的文件,这个文件记录了该表的表结构定义。   6.InnoDB存储引擎文件   上边介绍的文件都是MySQL数据库本身的文件,和存储引擎无关。除了这些文件之外,每个表存储引擎还有其自己独有的文件。与InnoDB存储引擎密切相关的文件包括重做日志文件(redo log)和表空间文件(tablespace)。   1.表空间文件   InnoDB采用将存储的数据按表空间进行存放。默认配置下会有一个初始大小为10M名为ibdata1的文件。该文件就是默认的表空间文件,可通过参数innodb_data_file_path对其进行设置。默认情况下InnoDB存储引擎的表的数据都会记录到该共享表空间中,但是可以通过参数innodb_file_per_table设置,为每个基于InnoDB存储引擎的表产生一个独立表空间。该独立表空间只是存储该表的数据、索引和插入缓冲BITMAP等信息,其余的信息还是存放在默认的表空间中。   2.重做日志文件   默认情况下在数据目录下会有两个名为ib_logfile0和ib_logfile1的文件。记录了对于InnoDB存储引擎的事务日志。当数据库宕机时,InnoDB存储引擎会使用重做日志恢复到故障之前的时刻,以此来保证数据的完整性。以下参数影响重做日志文件的属性:innodb_log_file_size、innodb_log_files_in_group、innodb_mirrored_log_groups、innodb_log_group_home_dir  

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:mysql语句汇总_MySQLNächster Artikel:mysql如何做orderby_MySQL