mysql--日志文件
1 选择常规查询日志和慢查询日志输出目标
1.1 log_output查看、定义
所谓的输出目标就是日志写入到哪里,mysql中用系统变量 log_output来指定输出目标,log_output的值有三个:
NONE FILE TABLE (其中NONE优先级最高)
mysql中log_output语法 :
show variables like "log_output" 查看log_output
set global log_output='FILE' 设置log_output
如果log_output在日志启动的时候没有指定,则默认日志记录目标是FILE,如果log_output在日志启动的时候已经指定那么他的只可以是 TABLE 或 FILE 或 NONE ,也可以是他们的组合(多个值之间用,分隔),如果开启了任何一个日志,服务器会打开相应的日志文件并向其写入启动消息,但是必须选择log_output,否则日志就不会进一步的写入日志文件中
–log-output=TABLE,FILE,NONE NONE表示不记录到文件或者表中。如果NONE出现,则其他的输出目标也无效。
–log-output=TABLE,FILE 同时输出到文件或表中
–log-output 则输出到默认的文件中
1.2日志表的好处和特征
日志表的好处:
1. 每条日志具有标准的格式,要显示日志表的当前结果,请使用一下语句
SHOW CREATE TABLE mysql.general_log; 常规查询日志
SHOW CREATE TABLE mysql.slow_log; 慢查询日志
2. 可以通过语句访问日志,可以很容易获取满足特定条件的日志查询,例如获取特定时间段或某一个用户的日志
3. 日志的内容可以通过客户端远程连接进行查询。
日志表的具体实现特征:
1. 日志表可以进行CREATE TABLE, ALTER TABLE,和DROP TABLED操作,但是对于日志表ALTER TABLE和DROP TABLE不能用,必须禁用,
2. 默认情况下,日志表使用CVS存储引擎将日志数据写到逗号分割的数据格式中国,这种格式更容易被导入到其他程序中进行分析使用
3. 可以更改日志表以使用 MyISAM
存储引擎,但不能在日志使用的时候用LATER TABLE修改日志表,必须要先禁止日志,而且日志表的存储引擎只能用CVS或MyISAM, 禁用日志并修改存储引擎:
SET @old_log_state = @@GLOBAL.general_log;
SET GLOBAL general_log = 0;
ALTER TABLE mysql.general_log ENGINE = MyISAM;
SET NGLBAL general_log = @old_log_state;
(注:上面示例使用通用查询日志; 慢查询日志的过程类似)
4 TRUNCATE TABLE
是对日志表的有效操作。它可用于使日志条目到期(清空日志)
5. 可以通过RENAME_TABLE重命名日志表的表名(例如,执行日志轮换) :
DROP TABLE IF EXISTS general_log2;
CREATE TABLE generla_log2 LIKE general_log;
RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;
6. CHECK TABLE 是对日志表有效的操作
检查InnoDB和MyIsam是否有错误。检查表或者视图是否存在错误,对 MyISAM 和 InnoDB 存储引擎的表有作用。对于 MyISAM 存储引擎的表进行表检查,也会同时更新关键字统计数据。语法:
CHECK TABLE tbl_name [, tbl_name] [option]
7. LOCK TABLES 不能再日志表上使用,同时 INSERT DELETE UPDATE 不能再日志表上使用,这些操作仅允许在服务器本身内部执行
8 FLUSH TABLES WITH READ LOCK
并且read_only
系统变量的状态 对日志表没有影响。服务器始终可以写入日志表。
9 写入日志表的条目不会写入二进制日志,因此不会复制到从属服务器
10 要刷新日志表或日志文件,请分别使用 FLUSH TABLES
或 FLUSH LOGS
。
11 不允许对日志表进行分区。
12 一个mysqldump的转储包括报表中重新创建这些表,以便它们不会重新加载转储文件后失踪。不转储日志表内容
2 慢查询日志 slow_query_log
慢查询日志由long_queyr_time执行时间超过几秒钟的SQL语句组成,并且要求至少检查min_examined_row_limit行。慢速查询日志可用于查找执行时间较长的查询,因此是优化的候选查询
2.1 慢查询日志的参数
slow_query_log = 0|1 禁用|启用慢查询日志, 可在运行时启用或禁用 日志
slow_query_log_file 指定慢查询日志记录文件 ,如果这里没有指定慢查询日志文件默认为 host_name_slow.log, 同时可在运行是改变日志文件,如果日志文件已打开,则会关闭该文件打开新文件
long_query_time 如果查询花费时间超过此秒数,会将此查询记录到慢查询日志中 默认10,最小值0 该值可以指定为微秒的分辨率:
log-short-format = {OFF|ON} 默认值 OFF 如果已激活,则将较少的信息记录到慢查询日志中
log_slow_admin_statements 启用此系统变量会在慢查询日志中记录管理语句,其中包括:ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP TABLE, OPTIMIZE TABLE, 和 REPATR TABLE.
log_queries_not_using_indexes ={0|1} 要在写入慢查询日志的语句中包含不使用索引进行行查找的查询
log_throttle_queries_not_using_indexes
系统变量限制可以写入慢查询日志的每分钟此类查询的数量, 值 0 (默认值) 标识“无限制”。正值会对不使用索引的查询的日志记录市价每分钟限制。
2.2 服务器判断是否记录慢查询日志的顺序:
1. 查询必须不是管理语句,如果想记录管理语句,开启log_slow_admin_statements
2. 查询必须花费long_query_time秒钟,如果想记录不使用行索引的查询,开启log_queries_not_using_indexes
3 查询必须至少检查过min_examined_row_limit行
4 不得根据log_throttle_queries_not_using_indexes
设置禁止查询 。
mysql--日志文件的更多相关文章
- lnmp vps服务器删除mysql日志文件三种方法
我在上一篇文章介绍了著名的LNMP主机一键安装工具,对比了军哥lnmp和AMH主机的差别,由于AMH拥有用户后台界面,易于新手操作,值得推荐. 但是,上周末我网站宕机,收到DNSPOD发来了宕机提醒, ...
- (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)
(3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...
- Linux下自动清除MySQL日志文件
MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days= ...
- 浅谈MySQL日志文件|手撕MySQL|对线面试官
关注微信公众号[程序员白泽],进入白泽的知识分享星球 前言 上周五面试了字节的第三面,深感数据库知识的重要,我也意识到在平时的学习中,自己对于数据库的学习较为薄弱.甚至在有过一定实习经验之后,依旧因为 ...
- mysql 日志文件mysql-bin文件清除方法,和mysql-bin相关文件的配置
默认情况下mysql会一直保留mysql-bin文件,这样到一定时候,磁盘可能会被撑满,这时候是否可以删除这些文件呢,是否可以安全删除,是个问题. 首先要说明一下,这些文件都是mysql的日志文件,如 ...
- mysql日志文件
mysql的数据文件夹里出现mysql-bin日志文件,通过my.cnf注释掉log后,是否可以删除了? 参考 http://database.51cto.com/art/201107/278988. ...
- mysql日志文件相关的配置【2】
1.二进制日志是什么? mysql 的二进制日志用于记录数据库上做的变更. 2.二进制日志什么时间写到磁盘 1.总的来说二进制日志会在释放锁之前就写入磁盘.也就是说在commit完成之前:client ...
- mysql日志文件相关的配置【1】
1.log_output=[file | table | none ] 这个参数指定general_log &slow_query_log 的输出目标.可以是table | file | no ...
- MYSQL 日志文件路径错误 1067错误
场景再现: ---------------------------------------------------------------------------------------------- ...
- MySQL日志文件之错误日志和慢查询日志详解
今天天气又开始变得很热了,虽然很热很浮躁,但是不能不学习,我在北京向各位问好.今天给大家分享一点关于数据库日志方面的东西,因为日志不仅讨厌而且还很重要,在开发中时常免不了与它的亲密接触,就在前几天公司 ...
随机推荐
- CPU-bound(计算密集型) 和I/O bound(I/O密集型)/数据密集型
https://blog.csdn.net/q_l_s/article/details/51538039 I/O密集型 (CPU-bound)I/O bound 指的是系统的CPU效能相对硬盘/内存的 ...
- centos7中运行ifconfig提示“-bash: ifconfig: command not found”解决方案
linux系统查看ip地址常用命令是[ifconfig], CentOS 7.0最小安装是没有ifconfig命令怎么办? 1.用[ip addr]查看; 2.就是安装ifconfig命令 1.输入[ ...
- HDU 6588 Function
[传送门] 求$$\sum_{i=1}^{n} \gcd(\lfloor \sqrt[3]{i} \rfloor, i)$$题解写的很清楚,自己重新推一推. $$\sum_{i=1}^{n} \gcd ...
- MySQL使用的几条注意事项和1449错误解决方案
一.如何在Windows终端连接MySQL? 使用cmd进入终端,然后要进入到你安装MySQL的bin目录下(如果没有的话,会出现该命令无效之类的错误),然后使用命令mysql -u root -p, ...
- Zabbix的基本功能
zabbix组件: 两核心组件: zabbix-server(监控者) :收集agent发送的数据,写入数据库(mysql.oracal.)中,再通过web展示出来.默认端口为10051. zabbi ...
- for循环包含多个双引号怎么办?windows
for循环包含多个双引号怎么办?windows@echo offsetlocal EnableDelayedExpansionset "sed=%~sdp0sed"echo %se ...
- dogcom在openwrt上的使用
前提,先配置并运行mentohust(作为802.1x认证) 1,取得编译完成的可执行文件(可先在虚拟机里测试) 2,上传到路由器 3,把dogcom主程序和配置文件放在/etc/storage/do ...
- Salesforce - 建立轮循机制的潜在客户分配规则
客服中心经常会遇到由多个客服轮流分配接进来的订单,例如你有100个订单进入系统,你希望五个客服每人分配20个,也就是一种小组的轮换机制,常被称为“轮询” 这种循环分配规需要保证平均分配给客服新的订单记 ...
- Django性能优化的几种方法
1.一次性取出你所需要的数据 单一动作,需要多次连接数据库里的时候,最好一次性取出所有需要的数据,减少连接数据库的次数.此类需求推荐使用QuerySet.select_related()和prefet ...
- Kafka为什么速度那么快?
Kafka为什么速度那么快? Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率. 即使是普通的服务器 ...