MYSQL数据库学习十七 日志管理
17.1 MySQL软件所支持的日志
MySQL所支持的日志文件里,除了二进制日志文件外,其他日志文件都是文本文件。默认情况下,MySQL只会启动错误日志文件,其他日志文件则需要手动启动。
- 二进制日志:该日志 文件会以二进制形式记录数据库的各种操作,但是却不记录查询语句。
- 错误日志:该日志文件会记录MySQL服务器启动、关闭和运行时出错等信息。
- 通用查询日志:该日志记录MySQL服务器启动和关闭信息、客户端的连接信息、更新数据记录SQL语句和查询数据记录SQL语句。
- 慢查询日志:记录执行时间超过指定时间的各种操作,通过工具分析慢查询日志可以定位MySQL服务器性能瓶颈所在。
查看帮助文档可以发现,使用日志有优点也有缺点。启动日之后,虽然可以实现对MySQL服务器进行维护,但是会降低MySQL软件的执行速度。因此是否启动日志,启动什么类型日志要根据具体应用来决定。
17.2 操作二进制日志
1. 启动
修改配置文件my.ini
[mysqld]
log-bin[=dir\[filename]]
2. 查看
mysqlbinblog filename.number #必须在数据目录下
mysql> showbinary logs; #显示当前服务器使用的二进制文件及大小
mysql> showmaster logs; #显示主服务器使用的二进制文件及大小
mysql> showmaster status; #当前使用的二进制文件及所处位置
3. 暂停
SET SQL_LOG_BIN=0|1
0:暂停二进制日志功能;
1:开启二进制日志功能。
4. 删除
1.删除所有的二进制日志
RESET MASTER;
2.根据文件或时间点来删除二进制日志
PURGE { BINARY | MASTER } LOGS {TO 'log_name' | BEFORE datetime_expr }
17.3 操作错误日志
1.启动错误日志
修改配置文件my.ini
[mysqld]
error-bin[=dir\[filename]]
在mysql数据库中,错误日志功能是默认开启的。并且,错误日志无法被禁止。
如果没有设置dir和filename:日志文件将使用默认名字——hostname.err,保默到默认目录——数据库数据文件里。
2.查看错误日志
可直接使用普通文本工具查看。
3.删除错误日志
mysqladmin –u root –p flush-logs
17.4 通用查询日志
1.启动
修改配置文件my.ini
[mysqld]
log [=dir\[filename]]
2.查看
可直接使用普通文本工具查看。
3.停止
修改配置文件my.ini,将对应配置注释掉。
4.删除
mysqladmin –u root –p flush-logs
17.5 慢日志查询
1.启动
修改配置文件my.ini
[mysqld]
log-slow-queries[=dir\[filename]]
long_query_time=n
filename的格式:filename-slow.log
如果没有设置dir和filename:日志文件将使用默认名字——hostname-slow.log,保默到默认目录——数据库数据文件里。
2.查看
可直接使用普通文本工具查看。
3.分析
mysqldumpslow.pl -s al|ar|at -t n
-s:为分析慢查询日志时指定排序参数,al表示平均锁定时间,ar表示平均返回记录数,at表示平均查询时间。
-t:表示只显示指定的行数。
4.停止
修改配置文件my.ini,将对应配置注释掉。
5.删除
mysqladmin –u root –p flush-logs
参考博客:http://www.cnblogs.com/wangkongming/p/3684950.html
MYSQL数据库学习十七 日志管理的更多相关文章
- nodeJs学习-14 mysql数据库学习、Navicat管理工具
数据库: MySQL 免费.性能非常不错 缺点:集群.容灾稍微弱一点 Oracle 收费.大型应用.金融级.性能非常不错.集群.容灾非常强 缺点:贵 mySQL安装教程--nodeJsz智能社视频 ...
- MySQL/MariaDB数据库的各种日志管理
MySQL/MariaDB数据库的各种日志管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.事务日志 (transaction log) 1>.Innodb事务日志相 ...
- (转)Mysql数据库之Binlog日志使用总结
使用mysqlbinlog提取二进制日志 原文:http://blog.csdn.net/leshami/article/details/41962243 MySQL binlog日志记录了MySQL ...
- Linux学习之日志管理(二十一)
Linux学习之日志管理 目录 日志管理 日志服务 rsyslogd的新特点 启动日志服务 常见日志的作用 日志文件的一般格式 rsyslogd日志服务 /etc/rsyslog.conf配置文件 服 ...
- MySQL数据库以及表的管理
MySQL数据库以及表的管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有 ...
- MYSQL数据库学习笔记1
MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
随机推荐
- SQL Server 批量插入
使用场景 在项目中,涉及到数据库表变更时,可能会需要将一个或多个表中的数据迁移到另一个表中. 这时用sql去执行会很方便! sql语句 //SQL批量插入 create table #ttableNa ...
- PHP学习笔记--Php预定义超全局变量$_GET
Php中的许多预定义变量都是超全局的,无需使用global声明 超全局变量 不需要声明就可以直接使用 提供超全局变量(数组)为了让程序员更快捷的编程 $GLOBALS— 引用全局作用域中可用的全部变量 ...
- ios学习笔记(一)Windows7上使用VMWare搭建iPhone开发环境
我们都知道开发iPhone等ios平台的移动应用时需要使用Mac本,但是Mac本都比较昂贵,所以我们可以采用Windows7上利用VMWare安装Mac操作系统的方法来模拟ios开发环境,达到降低成本 ...
- offline页面开发常用方法及页面控件验证
offline页面开发常用方法及页面控件验证,对一些CheckBoxList操作进行封装,新人可以直接使用该代码. 1.返回上一页网址 /// <summary> /// Descript ...
- 修改MyEclipse行数的颜色
修改MyEclipse行数的颜色 1.未修改前,行数的颜色 2.依次选择"Window--->Preferences" 3.选择"General--->Edi ...
- Linux显示目前登入系统的用户信息
Linux显示目前登入系统的用户信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ who youhaidong :0 2015-01-26 22:43 (: ...
- OpenStack_I版 2.keystone部署
生成keystone默认证书,指定用户 修改keystone主配置文件 第625行,修改数据库连接方式 修改完成同步数据库 同步完成可以查看数据库是否有表生成 为了以后调试keystone方便,现 ...
- WebForm 生成并显示二维码
Generate and display QRCode in WebForm. 项目引用 QRCoder生成并显示 QRCode 项目引用 QRCoder How to use QRCoder Via ...
- jQuery框架-2.jQuery操作DOM节点与jQuery.ajax方法
一.jQuery操作DOM 内部插入操作: append(content|fn):向每个匹配的元素内部追加内容. prepend(content):向每个匹配的元素内部前置内容. 外部插入操作: af ...
- Java 计算年龄
public static String getAgeTxt(String birthTime,String beginTime,int level){ if(StringUtils.isBlank( ...