MySQL 服务日志
翻译自 dev.mysql.com/doc/refman/5.7/en/log-destinations.html
一、选择常规查询日志和慢查询输出日志的目的地
MySQL提供了灵活的控制对常规查询和慢查询的输出目的地,如果这些日志被启用,可能的目的地是日志文件或日志表general_log和slow_log(mysql 数据库),任何一个或全部的目的地都可以被选择。
1. 服务启动时控制日志
--log-output指定了日志输出的目的地,这个选项本身不会启动日志目的地
这个日志输出的可选值是逗号分隔的一系列单词TABLE(记录进tables)、FILE记录进文件,NONE(都不写),如果NONE在其他值之前,其他值会被忽略、
--log-output被忽略,则默认的日志目的地是FILE
general_log 系统变量控制常规日志输出到已选择的目的地。如果在启动时指定general_log,general_log的可选值1或0来启用或禁用日志;如需要指定日志文件的名称,可设置general_log_file变量。
相似的是,slow_query_log控制输出慢查询日志到已选择的目的地,设置slow_query_log_file来制定慢查询日志的文件名称;
如果只启用日志选项(没启用FILE目的地),服务打开对应的日志文件并写入启动信息到日志文件;然而,查询记录不会写入到文件,除非FILE目的地被选中。
例如:
将常规查询写到日志表和日志文件,使用 --log-output=TABLE,FILE 选中这两个目的地 使用--general_log启用常规查询日志;
将常规查询和慢查询只写入到日志表,使用--log-output=TABLE 选中表作为日志输出目的地,--general_log和--slow_query_log去开启这两个日志输出。
而如果查询记录只写到日志文件,此时可以忽略掉--log-output=FILE这个默认选项。
[zheng@localhost ~]$ sudo /etc/rc.d/init.d/mysqld start --log-output=FILE,TABLE --general_log --slow_query_log Starting MySQL. SUCCESS!
2.运行时控制日志输出
全局系统变量log_output 表示当前的日志输出目的地,这个可以在运行时修改来改变日志输出目的地
全局变量general_log slow_query_log表示常规查询和慢查询已启用(ON)或禁用(OFF),你可以在运行时设置这些变量来控制日志是否启用。
全局变量general_log_file slow_query_log_file 指示常规查询和慢查询的文件名称,可以在服务启动或者运行时设置这些变量来改变日志文件的名称。
为当前会话开启或禁用日志,可以设置sql_log_off变量来控制启用ON和禁用OFF
2.1 查看日志输出目的地
mysql> show variables like '%log_output%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | FILE | +---------------+-------+ row in set
2.2将日志输出到表有以下好处
(1) 日志具有标准的格式。要查看当前日志表的结构,可以使用 show create table mysql.general_log; show create table mysql.slow_log;
(2) 日志内容可以通过SQL语句进行访问。这使得可以执行满足特定条件的日志选择查询。例如,搜索有关于特定客户端的查询内容(用来识别来自客户端的问题查询),这种方式比使用日志文件更加简单。
(3)日志可以被能够远程连接并发出查询客户端进行访问(如果客户端有合适的日志表权限),这样就没必要登录服务主机和直接访问文件系统。
2.3 日志表有以下特点
(1) 总的来说,日志表是首要目的是提供一个接口给用户来观察服务的运行,而不介入服务的运行时执行。
(2) 创建表 修改表 删掉表 可用在日志表,对于修改和删除表,该表不能是正在使用的,必须被禁用。
(3) 默认,日志表使用CSV存储引擎,以逗号分割的格式写入数据。对于能够访问包含日志表数据的.csv文件的用户,这些文件可以方便地导入进其他程序,比如电子表格(能够处理CSV输入)。
(4) 日志表可以改为使用MyISAM存储引擎,但不能修改正在使用的日志表。首先要把日志表禁用才行。除了CSV和MyISAM这两个存储引擎,其他都不可以作为日志表的存储引擎。
(5) 为了修改或删掉日志表而禁用日志,你可以使用如下策略
SET @old_log_state = @@global.general_log; SET GLOBAL general_log = 'OFF'; ALTER TABLE mysql.general_log ENGINE = MyISAM; SET GLOBAL general_log = @old_log_state;
(6)在日志表上执行清空表(truncate table)是可行的。它可以用在清除过期日志记录。
(7)重命名表是可行的,你可以原子性地重命名表,比如
USE mysql; DROP TABLE IF EXISTS general_log2; CREATE TABLE general_log2 LIKE general_log; RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;
(8) 检查表(check table)也是可行的
(9) 锁住表不能用在日志表上,插入删除更新也不能用在日志表。这些操作只能被服务内部执行。
(10) flush tables with read lock 和 read only 系统变量对于日志表没有影响,服务器可以随时写入日志表。
(11) 日志表记录不被写入二进制日志,也不会备份到从服务器。
(12)刷新日志表和日志文件,分别使用 flush tables 和 flush logs.
(13) 日志表不允许分区。
(14) mysqldump 备份重建表语句,所以在加载dump文件后日志表不会丢失,但日志表内容不会备份。
MySQL 服务日志的更多相关文章
- [MySQL Reference Manual] 5 MySQL 服务管理
5. MySQL 服务管理 5. MySQL 服务管理 5.1 The Mysql Server 5.2 Mysql 服务日志 5.2.1 选择General query log和slow query ...
- MYSQL 服务无法启动,错误日志:InnoDB: .\ibdata1 must be writable
这几天安装MYSQL 5.7版本的时候,出现了服务无法启动的问题,尝试了各种修改配置文件my.ini的方法都不行,查看到错误日志,一般错误日志在C:\Program Files\MySQL\MySQL ...
- CentOS 7下MySQL服务启动失败的解决思路
今天,启动MySQL服务器失败,如下所示: [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Jo ...
- MySQL服务 - 客户端工具mysql及mysqladmin使用介绍
mysql客户端: mysql工具是MySQL官方提供的连接工具,用户可以通过mysql连接到mysqld上进行一系列的SQL操作.mysql工具有两种模式:交互模式和命令行模式.交互模式指令需要连接 ...
- MySQL 安装和启动服务,“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”
MySQL 安装和启动服务,以及遇到的问题 MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5. ...
- Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法。
Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法. 在本地计算机无法启动MYSQL服务错误1067进程意外终止.这种情况一般是my.ini文件配置出错了1.首 ...
- 不停止MySQL服务增加从库的两种方式
不停止MySQL服务增加从库的两种方式 转载自:http://lizhenliang.blog.51cto.com/7876557/1669829 现在生产环境MySQL数据库是一主一从,由于业务量访 ...
- Mysql打开日志信息
还可参考博客:http://pangge.blog.51cto.com/6013757/1319304 1)怎么查看mysql是否启用了日志 mysql>show variables like ...
- MySQL 5.7 for Windows 解压缩版 MySQL 服务无法启动
MySQL 5.7 for Windows 解压缩版配置安装 http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html basedi ...
随机推荐
- JavaScript 的 作用域
在看了几本书之后的一些理解和自己的想法. 作用域,变量的作用范围 在ES6之前 变量的声明 只有var可以声明变量属于某个作用域,并且,也只有全局作用域和函数作用域. (没有var声明的变 ...
- 小哈学Python第三课-字符集编码
table.hovertable { font-family: verdana, arial, sans-serif; font-size: 11px; color: #333333; border- ...
- ASP.NET MVC HttpPostedFileBase文件上传
HttpPostedFileBase文件上传,支持多文件一次上传,如有图片,则支持略缩图保存 文件传输信息封装 /// <summary> /// 文件生成方式 /// </summ ...
- WIN10下设置惠普HP1050等打印机打印颜色,只打黑白或彩色
今天同事问了一个问题,如何在WIN10下,设置惠普打印机只打印黑白, 上网搜了下,没有找到任何信息,只有在WIN8前系统设置的内容,经过几番折腾,得出此文. WIN10下设置惠普HP1050等打印机打 ...
- nyoj_120: 校园网络
题目链接 要加边使一个图成为一个强连通分量,只需加max(出度为0的点数,入度为0的点数)条边(可以不使用tarjan算法).题目数据有点弱,网上一些人所谓 结果 = 出度为0的点的数量+入度为0的点 ...
- The request sent by the client was syntactically incorrect问题解决
The request sent by the client was syntactically incorrect意思嘛,google翻译一下 通过日志不难看出,是由参数不匹配造成的. 所以对于Da ...
- Framework7 索引列表插件的问题
前言 Framework7 作为移动端的开发框架的优良之处已经无需多言.现在已经有了 React 和 Vue 版本,之前在项目中用过 F7 + vue 的开发方式,无论是效率还是产出都近乎完美.有时间 ...
- Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR)
<Windows Azure Platform 系列文章目录> 微软Azure认知服务的计算机视觉API,还提供读取图片中的文字功能 在海外的Windows Azure认知服务的读取图片功 ...
- CVE-2016-3714 - ImageMagick 命令执行
ImageMagick是一款使用量很广的图片处理程序,很多厂商都调用了这个程序进行图片处理,包括图片的伸缩.切割.水印.格式转换等等.但近来有研究者发现,当用户传入一个包含『畸形内容』的图片的时候,就 ...
- 移动玩具[HAOI2008]
题目描述 在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初始的玩 ...