1高端网站建设,网站制作过程内容,长沙外贸建站,高端+旅游+网站建设目录
一、日志文件
1、错误日志 Error Log
1.1、作用#xff1a;
1.2、开启关闭#xff1a;
1.3、使用
2、二进制日志 Binary Log Binary Log Index
2.1、作用#xff1a;
2.2、开启关闭#xff1a;
2.3、Binlog还有一些附加选项参数
#xff08;1#x…目录
一、日志文件
1、错误日志 Error Log
1.1、作用
1.2、开启关闭
1.3、使用
2、二进制日志 Binary Log Binary Log Index
2.1、作用
2.2、开启关闭
2.3、Binlog还有一些附加选项参数
1--max_binlog_size
2--binlog-do-dbdb_name
3--binlog-ignore-dbdb_name
3、更新日志update log
4、查询日志query log
5、慢查询日志slow query log
6、Innodb的在线redo日志innodb redo log
二、数据文件
1、.frm文件
2、.MYD文件
3、.MYI文件
4、.ibd文件和 ibdata文件
4.1、独享表空间存储方式
4.2、共享表空间来存放数据
三、Replication相关文件
1、master.info文件
2、relay log和relay log index
3、relay-log.info文件
四、其他文件
1、system config file
2、pid file
3、socket file 本篇基于MyISAM、Innodb两种最常见的引擎。
以windows mysql5.7为例我的安装目录为 C:\ProgramData\MySQL\MySQL Server 5.7
一、日志文件
1、错误日志 Error Log
1.1、作用
错误日志记录了MySQL运行过程中所有较为严重的警告和错误信息以及MySQL Server每次启动和关闭的详细信息。
1.2、开启关闭
在默认情况下系统记录错误日志的功能是关闭的如果要开启系统记录错误日志的功能需要在启动时开启-log-error[file_name]修改其存放目录和文件名。my.ini中默认配置如下 1.3、使用
为了方便维护有时候会希望将错误日志中的内容做备份并重新开始记录这时候就可以利用MySQL的flush log命令来告诉MySQL备份旧日志文件并生成新的日志文件。备份文件名以“.old”结尾。
2、二进制日志 Binary Log Binary Log Index
2.1、作用
二进制日志也就是我们常说的binlog也是MySQL中最为重要的日志之一。我们在做主从复制的时候需要用到这个文件。当我们通过“—log-bin[file_name]”打开了记录的功能之后MySQL会将所有修改数据库数据的query以二进制形式记录到日志文件中。当然日志并不仅限于sql语句这么简单还包括每一条sql所执行的时间所消耗的资源以及相关的事务信息所以binlog是事务安全的。 mysql-bin.index文件binary log index的功能是记录所有Binary Log的绝对路径保证MySQL各种线程能够顺利的根据它找到所有需要的Binary Log文件。
2.2、开启关闭
和错误日志一样binlog记录功能需要“—log-bin[file_name]”参数显示指定才能开启如果未指定file_name则会在数据目录下记录为mysql-bin.******(*代表0-9之间的某一个数字来标识该日志的序号)。my.ini中默认配置如下 2.3、Binlog还有一些附加选项参数
1--max_binlog_size
设置binlog的最大存储上线当日志达到上限时MySQL会重新创建一个日志开始继续记录。不过偶尔也会有超出该设置的binlog产生一般都是因为在即将到达上限时产生了一个较大的事务为了保证事务安全MySQL不会将同一个事务分开记录到两个binlog中。
2--binlog-do-dbdb_name
参数明确告诉MySQL需要对某个db_name数据库记录binlog如果有了“—binlog-do-dbdb_name”参数的显示制定MySQL会忽略针对其他数据库执行的sql语句而仅仅记录对制定数据库执行的sql。
3--binlog-ignore-dbdb_name
与 “--binlog-do-dbdb_name”完全相反它显示指定忽略某个db_name数据库的binlog记录当制定了这个参数之后MySQL会记录制定数据库以外所有的数据库的binlog。
注意 --binlog-ignore-dbdb_name”与“--binlog-do-db_db_name”两个参数有一个共同的概念参数中的db_name不是指sql语句更新的数据所在的数据库而是指执行sql的时候当前所处的数据库。不论更新哪个数据库的数据MySQL仅仅比较当前连接所处的数据库通过use_db_name切换后所在的数据库与参数设置的数据库名而不会分析sql语句所更新数据库所在的数据库。
3、更新日志update log
5.0版本之后不再支持更新日志由binlog功能代替。
4、查询日志query log
查询日志记录MySQL中所有的query通过“--log[file_name]”来打开该功能。由于记录了所有的query,包括所有的select体积比较大开启后对性能也有较大的影响所以该功能要慎用。一般用于跟踪某些特殊的sql性能问题才会短暂打开该功能。默认的查询日志文件名为hostname.log。
5、慢查询日志slow query log
慢查询日志中记录的是执行时间较长的query也就是我们常说的slow query通过设--log-slow-queries[file_name]来打开该功能并设置记录位置和文件名默认文件名为hostname-slow.log默认目录也是数据目录。
慢查询日志采用的是简单的文本格式可以通过各种文本编辑器查看其中内容。其中记录了语句执行的时间执行所消耗的时间执行用户连接主机等相关信息。MySQL还提供了专门用来分析慢查询日志的工具程序mysqlslowdump用来帮助数据库管理人员解决可能存在的性能问题。
6、Innodb的在线redo日志innodb redo log
Innodb是一个事务安全的存储引擎其事务安全性主要就是通过在线redo日志和记录表空间中undo信息来保证的。redo日志中记录了Innodb所做的所有物理变更和事务信息通过redo日志和undo信息Innodb保证了在任何情况下的事务安全性。Innodb的redo日志同样默认存放在数据目录下可以通过innodb_log_home_dir来更改设置日志的存放位置通过innodb_log_files_in_group设置日志的数量。
二、数据文件
在MySQL中每一个数据库都会定义好或者默认的数据目录下存在一个以数据库名字命名的文件夹用来存放该数据库中各种表数据文件。不同的MySQL存储引擎有各自不同的数据文件存放位置也有区别。多数存储引擎的数据文件都存放在和MyISAM数据文件位置相同的目录下但是每个数据文件的扩展名却各不一样。如MyISAM用“.MYD”作为扩展名Innodb用“.ibd”等等。
1、.frm文件
与表相关的元数据meta信息存放在“.frm”文件中包含表结构的定义信息等。不论是什么存储引擎每一个表都会有一个以表名命名的“.frm”文件。所有的“.frm”文件都存放在所属数据库的文件夹下面。
2、.MYD文件
.MYD”文件是MyISAM存储引擎专用存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应同样存放于所属数据库的文件夹下和“.frm”文件放在一起。
3、.MYI文件
“.MYI”文件也是专属于MyISAM存储引擎的主要存放MyISAM表的索引相关信息。对于MyISAM存储来说可以被cache的内容主要就是来源于“.MYI”文件中。每一个MyISAM表对应一个“.MYI”文件存放于位置和“.frm”以及“.MYD”一样。
4、.ibd文件和 ibdata文件
这两种文件都是存放Innodb数据的文件之所以有两种文件来存放Innodb的数据包括索引是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据还是独享表空间存放存储数据。
4.1、独享表空间存储方式
使用“.ibd”文件来存放数据且每个表一个“.ibd”文件文件存放在和MyISAM数据相同的位置。
4.2、共享表空间来存放数据
使用“ibdata”文件来存放所有表共同使用一个或者多个可自行配置ibdata文件。Ibdata文件可以通过innodb_data_home_dir和innodb_data_file_path两个参数共同配置组成
1innodb_data_home_dir配置数据存放的总目录
2innodb_data_file_path配置每一个文件的名称。当然也可以不配置innodb_data_home_dir而直接在innodb_data_file_path参数配置的时候使用绝对路径来完成配置。Innodb_data_file_path中可以一次配置多个ibdata文件。文件可以使制定大小也可以是自动扩展的但那是Innodb限制了仅仅只有最后一个ibdata文件能够配置成自动扩充类型。当我们需要添加新的ibdata文件的时候只能添加在innodb_data_file_path配置的最后而且必须重启MySQL才能完成ibdata的添加工作。不过如果我们使用独享表空间存储方式的话就不会有这样的问题。
三、Replication相关文件
1、master.info文件
master.info文件存在于Slave端的数据目录下里面存放了该Slave的Master端的相关信息包括Master的主机地址连接用户连接密码连接端口当前日志位置已经读取到的日志位置等信息。
2、relay log和relay log index
mysql-relay-bin.******文件用于存放Slave端的I/O线程从Master端读取到的Binary Log信息然后由Slave端的SQL线程从该relay log中读取并解析相应的日志信息转化为Master端执行的SQL语句然后在Slave端应用。
mysql-relay-bin.index文件的功能类似于mysql-bin.index,同样是记录日志的存放位置的绝对路径只不过他记录的不是Binary Log而是Relay Log。
3、relay-log.info文件
类似于master.info它存放通过Slave的I/O线程写入到本地的relay log的相关信息。供Slave端的SQL线程以及某些管理操作随时能够获取当前复制的相关信息。
四、其他文件
1、system config file
MySQL的系统配置文件一般都是“my.cnf”“my.cnf”文件中包含多种参数选项组每一种参数组都通过中括号给定了固定的组名如“[mysqld]”组中包括了mysqld服务启动时候的初始化参数“[client]”组中包含着客户端工具程序可以读取的参数此外还有其他针对各个客户端软件的特定参数组如mysql程序使用“[mysql]”等等如果读者编写了某个客户端程序也可以自己设定给一个参数组名将相关参数配置在里面然后mysql客户端api程序中的参数读取api读取相关参数。
说明mysql系统配置文件
① linux系统中该文件的位置是“/etc/mysql/my.cnf”
② windows系统中该文件的位置是“C:\Program Files\MySQL\MySQL Server\my.ini”。
2、pid file
pid file是mysqld应用程序在Unix/Linux环境下的一个进程文件和其他Unix/Linux服务端程序一样也存放这自己的进程id.
3、socket file
Socket文件也是在Unix/Linux环境下才有的用户在Unix/Linux环境下客户端连接可以不通过TCP/IP网络而直接使用Unix Socket来连接MySQL。