初始化选项文件:
对于UNIX/Linux平台,MySQL程序默认会按照如下顺序扫描下列路径,并使用找到的第一个匹配的选项文件
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf 通过CMake源码编译时指定的SYSCONFDIR参数指定的路径
$MYSQL_HOME/my.cnf
~/.my.cnf
本例中为
/data/mysqldata/3306/my.cnf
错误日志文件:
不仅仅是记录错误信息,MySQL服务进程即mysqld启动或关闭的信息也会被记录进来。错误日志文件是在启用mysqld时,通过log-error选项指定错误日志的路径及文件名
错误日志中记录的信息分为3类:Note,Warning,Error
Note对应的是正常的MySQL服务启动或关闭信息
Error对应的是错误的信息
Warning对应的是警告信息
对于Linux/UNIX系统,错误日志可以被写入到系统日志syslog中,在执行mysqld_safe命令启动MySQL服务时,可以附加--syslog参数,使MySQL的日志信息输出到系统日志中
/data/mysqldata/3306/mysql-error.log
查询日志文件:
MySQL会自动将所有执行时间超过指定阈值的SQL语句都记录下来,保存在文件里,这个文件就是慢查询日志文件。
MySQL的查询日志有两种,一种是慢查询日志(Slow Query Log)。另一种是通用查询日志(General Query Log),不仅仅记录执行慢的查询,而是所有执行的查询语句都会被记录下来
MySQL的查询日志不仅能记录到文件,还能自动保存到MySQL数据库中的表对象里
慢查询日志:就是所有查询语句执行时间超过系统变量long_query_time(默认值为10秒)指定的参数值,并且访问的记录数超过系统变量min_examined_row_limit(默认值为0条)的数量的语句。默认情况下慢查询日志功能是被禁止的,通过MySQL系统参数进行控制。通过慢查询日志调优SQL语句是项非常有效的手段
(system@localhost) [mysql]> set global slow_query_log=on;
(system@localhost) [mysql]> show global variables like '%slow%';
+---------------------------+-------------------+
| Variable_name | Value |
+---------------------------+-------------------+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /data/mysqldata/3306/slow_query.log |
+---------------------------+-------------------+
slow_query_log指定是否输出慢查询日志,1为输出,0不输出,默认值为0
slow_query_log_file指定日志文件存储路径和文件名,默认保存在MySQL的data目录下
long_query_time指定慢查询执行时间的阀值
log_short_format用来控制输出到慢查询日志文件的信息,指定后,会减少输出信息
log_slow_admin_statements用来控制是否将一些执行时间较长的管理类语句,如OPTIMIZE TABLE、ANALYZE TABLE、ALTER TABLE语句输出到慢查询日志中
log_queries_not_using_indexes用来控制是否将未使用索引的语句输出到慢查询日志文件
log_throttle_queries_not_using_indexes一般会与log_queries_not_using_indexes参数组合使用,是控制每分钟输出到慢查询日志的未使用索引的记录条数,默认是0,表示不限制
log_slow_slave_statements复制环境专用的参数,用来控制是否将复制的查询语句输出到慢查询日志
/data/mysqldata/3306/slow_query.log
通过慢查询日志调优SQL语句是非常有效的手段
慢查询日志中语句记录和顺序可能跟执行顺序不同
普通查询日志:能够记录mysqld进程所做的几乎所有操作,不仅仅是客户端发出的sql语句会被记录到普通查询日志中,对于数据库或对象的管理操作也会记录下来,甚至连客户端连接或断开连接,服务器都会向文件中写入相应信息。最大的功能是审计,通过浏览日志文件中的信息,可以了解客户端都做了什么。通过MySQL系统参数进行控制。DBA怀疑客户端执行的操作有问题,就可以通过普通查询日志确定客户端究竟执行的是什么
(system@localhost) [mysql]> show global variables like '%general%';
+------------------+----------------------+
| Variable_name | Value |
+------------------+----------------------+
| general_log | OFF |
| general_log_file | /data/mysqldata/3306/general_query.log |
+------------------+----------------------+
general_log是否开启,0表示禁用,1表示启用
general_log_file指定日志文件存储路径和文件名,默认情况下,保存在data目录下,默认为[host_name].log
可以在MySQL服务运行时动态进行修改,而不需要重启MySQL服务。
禁用或启用普通全局查询日志:
SET GLOBAL general_log=’OFF’;
SET GLOBAL general_log=’ON’;
禁用或启用某个会话产生的普通查询日志:
SET sql_log_off=’OFF’;
SET sql_log_off=’ON’;
不要长期启用普通查询日志
普通查询日志文件中出现的顺序,是按照mysqld接收的顺序记录的
配置查询日志:
MySQL服务启动时配置指定--log-output选项:TABLE,FILE,NONE
--log-output=TABLE,FILE --general_log
--log-output=TABLE --general_log --slow_query_log
仅启用普通查询日志,并记录到日志文件和日志表
--log-output=TABLE,FILE --general_log
启用普通查询日志和慢查询日志,日志记录到数据库中的日志表
--log-output=TABLE --general_log --slow_query_log
--log-output=FILE --slow_query_log
--log_output=FILE --slow_query_log --slow_query_log_file=/data/mysql/logs/slow.log
MySQL服务运行中实时修改
二进制日志文件:
二进制日志binary log:记录数据库中的修改事件
二进制日志文件binary log file:保存数据库中修改事件的文件
普通查询日志是文本格式文件,为用户实际执行的操作,而二进制日志文件,记录的是数据库实际执行的操作。
通过二进制日志,能够实现两个重要功能:
用户复制,将MySQL Master端的二进制日志发送至Slave端,Slave端即可根据二进制日志中的内容,在本地重做,以达到主从同步的目的
用于恢复,当使用了备份恢复了数据库后,通过应用二进制日志文件,能够实现将数据恢复到故障发生前的状态
默认是不启用二进制日志文件功能,需要在启动MySQL服务时附加--log-bin选项,用来控制MySQL服务端要将数据库的修改操作写入二进制日志文件
在my.cnf中为bin-log选项
[mysql@mysql1 binlog]$ pwd
/data/mysqldata/3306/binlog
[mysql@mysql1 binlog]$ ll
total 1300
-rw-rw----. 1 mysql mysql 67095 Jul 2 23:47 mysql-bin.000001
-rw-rw----. 1 mysql mysql 1216094 Jul 2 23:47 mysql-bin.000002
-rw-rw----. 1 mysql mysql 143 Jul 2 23:53 mysql-bin.000003
-rw-rw----. 1 mysql mysql 894 Jul 3 09:06 mysql-bin.000004
-rw-rw----. 1 mysql mysql 1066 Jul 3 14:49 mysql-bin.000005
-rw-rw----. 1 mysql mysql 436 Jul 3 14:53 mysql-bin.000006
-rw-rw----. 1 mysql mysql 143 Jul 3 17:03 mysql-bin.000007
-rw-rw----. 1 mysql mysql 2892 Jul 4 14:44 mysql-bin.000008
-rw-rw----. 1 mysql mysql 143 Jul 5 10:36 mysql-bin.000009
-rw-rw----. 1 mysql mysql 143 Jul 5 11:18 mysql-bin.000010
-rw-rw----. 1 mysql mysql 143 Jul 7 09:57 mysql-bin.000011
-rw-rw----. 1 mysql mysql 120 Jul 7 09:57 mysql-bin.000012
-rw-rw----. 1 mysql mysql 540 Jul 7 09:57 mysql-bin.index
mysqld进程会自动附加日志序列号到生成的二进制日志文件,最大空间是由系统变量max_binlog_size进行控制,日志文件有可能超过max_binlog_size参数指定的值。为了能够跟踪二进制文件的状态,MySQL服务会创建一个与二进制日志文件同名(扩展名为.index)的二进制日志索引文件,可以通过log-bin-index选项指定文件名和路径
RESET MASTER用来清空所有二进制日志文件,而PURGE BINARY LOGS语句可以用来删除指定的某个或某些日志文件。为安全起见,建议删除前先备份
对于非事务表来说,语句执行后就会立刻写入二进制日志中。对于事务表,则要等到当前没有任何锁定或未提交的信息才会写入二进制日志,以此来确保日志被记录的始终是其执行的顺序。对于暂未提交的事务,事务中的更新操作(update,delte,insert支持事务的表对象)会被缓存起来,直到收到COMMIT语句,而后,mysqld进程就会将整个事务在COMMIT执行前全部写到二进制日志。当线程开始处理事务时,它会按照binlog_cache_size系统变量指定的值分配内存空间,缓存SQL语句,如果语句所需要的空间比分配的缓存区要大,那么线程将打开一个临时文件保存这个事务,直到事务结束时再自动删除临时文件
二进制日志中记录事件的格式有3种:基于行格式记录(row-based logging),基于语句记录(statement-based logging),混合模式记录(mixed-based logging)
binlog_cache_use状态变量显示了使用binlog_cache_size系统变量的事务数
binlog_cache_disk_use状态变量显示了使用临时文件的事务数
这两个参数组合起来可用于binlog_cache_size系统变量设置的调整和优化,以尽可能避免使用磁盘临时文件
max_binlog_cache_size系统变量默认为 4GB,用来限制事务能够使用的最大缓存区
系统变量一般都是MySQL数据库中的系统配置,状态变量则是MySQL服务运行过程中的一些状态信息
查看系统变量执行:show [global] variables;
查看状态变量执行:show [global] status;
两个语句都支持附加like子句做细粒度的过滤
默认情况下二进制日志不是实时同步到磁盘,可以设置二进制日志同步到磁盘的频率,MySQL系统变量sync_binlog,设置为1(秒)安全级别最高,同时也是最慢的设置。MySQL初始化参数--innodb_support_xa设置为1,启用分布式事务的支持,确保二进制日志与InnoDB数据文件的同步。MySQL应被配置为以事务为单位同步二进制日志和InnoDB日志到磁盘。InnoDB日志默认即是同步状态,sync_binlog=1可以同步二进制日志。
中继日志及复制状态文件:
在复制过程中,Slave节点会创建若干文件,有些用于保存从Master节点接收到的二进制日志,有些用于记录当前复制环境的状态,还有些用于记录日志事件处理进度等相关信息。
中继日志relay log文件,用于保存读取到的Master二进制日志,由Slave节点的I/O线程负责数据的维护。类似Oracle的Standby Redologs
Master信息日志master.info文件,用于保存复制环境中连接Master节点的配置信息,比如说Slaves节点连接Master使用的用户名、密码、IP、端口等均在其中,在5.6之前保存在data目录下,5.6之后可以选择保存在mysql.slave_master_info表对象里
中继日志信息日志relay-log.info文件,保存处理进度及中继日志文件的位置,在5.6之前保存在data目录下的replay-log.info,5.6之后可以选择保存在mysql.slave_master_info表对象里
表对象数据文件:
frm文件:表对象的结构定义文件,只要是表对象一定会拥有这个文件,不管什么引擎
ibd文件:InnoDB引擎专用数据文件(含索引)
MYD文件:MyISAM引擎专用数据文件
MYI文件:MyISAM引擎专用索引文件
CSV文件:CSV数据文件
ARZ文件:ARCHIVE专用数据文件
进程id文件:
当MySQL服务启动后,在数据库目录下发现一个mysql.pid文件,保存的是当前MySQL服务的进程号
套接字文件:
在Linux/UNIX环境下,可以使用域套接字。只有当MySQL客户度和MySQL服务在同一台机器上时才能使用
show variables like ‘socket’;
自动配置文件:
从MySQL5.6开始,每个MySQL实例会拥有一个唯一的UUID,保存在数据根目录下的auto.cnf文件中,是由MySQL自动生成,不要尝试修改
相关推荐
天天生鲜电商网站项目MySql数据库文件,Mysql版本数据库,包括所需全部数据、图片、资源名称、数据结构等!
天天生鲜电商网站项目MySql数据库文件,Mysql版本数据库,包括所需全部数据、图片、资源名称、数据结构等!
# 从MySQL数据库中获取表格的结构信息,然后将其写入Excel文件中。具体实现步骤包括: # 代码实现说明 # 1定义数据库连接信息和表名前缀; # 2创建一个新的Excel工作簿; # 3连接MySQL数据库,并创建游标对象; # 4...
本系统<计算机组成与结构>课程网站是基于PHP的开发语言,Apache平台,MYSQL数据库进行制作的。系统主要是为学生提供一个网上学习的平台,为教师提供了一个相互交流的平台,并且将传统的教学方式和布置作业方式通过...
一、源码特点 PHP 学生管理系统 是一套完善的web设计系统,对理解php... 2、开发环境为PHP APACHE,数据库为mysql5.0,使用php语言开发。 3、数据库文件名是phpxsgl.sql ,系统名称xsgl 4、系统首页地址:index.php
java实现mysql数据库的表导出到excel文件,已经基本的demo包含jar包,可以导入的eclipse里面。比较好用吧
1、附件sql文件实在MySql-5.7.16版本技术上进行开发; 2、数据库对应水文数据库表结构及标识符---SL T 324-2019>>的192张表格;...3、附件中sql文件,可通过Navicat for MySql数据库工具创建数据库。
该代码可以通过运行main函数自动生成表结构包括表名字段和注释,现在生成的是txt版本后期会跟改成生成word或者Excel格式,请持续关注
2、左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)选择脚本存储的名称及位置,再在上面选择高级(Advanced)。 3、去掉记录选项(Record Options)中插入记录(Insert ...
一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...
其中Myecplise作为开发工具,采用Mysql作为数据库服务器,Tomcat作为网络服务器。 (1)管理员功能模块:管理员是拥有系统后台所有模块的权限,其中包括:用户信息管理;权限管理(学生、教师、管理员);教学大纲...
DB2MYSQL是一个可以自动将ACCESS数据库文件转化为对应的SQL代码的软件。可广泛应用于ACCESS数据库转换为MYSQL或其他类型的SQL数据库的软件。 <br> DB2MYSQL能够实现可视化操作数据库,转换界面非常简单明了,可...
简单易用的MySQL数据库操作软件,解压后里面有安装的注册信息。 SQLyog 相比其它类似的 MySQL 数据库管理工具其有如下特点: 1、基于C++和MySQL API编程; 2、方便快捷的数据库同步与数据库结构同步工具; 3、易用...
3、使学生熟悉MySQL数据库在Windows平台和Linux平台下的安装配置以及MySQL的目录结构。 二、进行重点知识的讲解 (1)什么是数据库? 《MySQL数据库入门》教学设计全文共7页,当前为第2页。教师首先向同学讲述...
一、源码特点 JSP 实习实训管理系统 ...2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为mysql5.0,使用java语言开发。 3、数据库文件名是jspfsxgl.sql ,系统名称sxgl 4、地址:login.jsp 5、IE 兼容模式浏览系统
一、源码特点 PHP 选题管理系统是一套完善的web设计系统,对理解... 2、开发环境为PHP APACHE,数据库为mysql5.0,使用php语言开发。 3、数据库文件名是phpxuanti.sql ,系统名称xuanti 4、系统首页地址:login.php
linux下操作mysql数据库,导出数据库,只导出表结构,只导出数据。大汇总,挺全面的。希望对linux下用mysql数据库导数据的使用提供帮助
1.了解SQL Server或MYSQL数据库的基本知识; 2.熟悉SQL Server或MYSQL环境和系统结构; 3.掌握图形化交互工具的基本操作,学会数据库及表的创建与管理; 4.理解和掌握SQL语言: 能够熟练地使用create/alter/drop...
一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...
开发工具:Myeclipse或Eclipse、jdk、tomcat、mysql数据库。 二、功能介绍 (1)权限管理:对权限信息进行添加、删除、修改和查看 (2)用户管理:对用户信息进行添加、删除、修改和查看 (3)收入类型管理:对收入类型...