Mysql query log
一、查询日志的概念:
查询日志记录MySQL中所有的query,通过"--log[=file_name]"来打开该功能。由于记录了所有的query,包括所有的select,体积比较大,开启后对性能也有比较大的影响,所以请大家慎用该功能。一般只用于跟踪某些特殊的sql性能问题才会短暂打开该功能。默认的查询日志文件名为:hostname.log.
To enable the general query log as of MySQL 5.1.6,start mysqld with the --log option,and optionally use --log-ouput to specify the log output destination as described in Section 5.11.1,"Server Log Tables",Before 5.1.6,enable the general query log file with the --log[=file_name]or -l[file_name] option.If no file_name value is give,the default name is host_name,log in the data directory.
Server restarts and log flushing do not cause a new general query log file to be generated (although flushingcloses and reopens it).On Unix,you can rename the file and create a new one by using the following commands:
shell> my host_name.log host_name-old.log
shell> mysqladmin flush-logs
shell> cp host_name-old.log backup-directory
shell> rm host_name-old.log
二、实验部分:
- ----默认情况下查看是否启用查询日志:
- [root@node4 mysql5.5]# service mysql start
- Starting MySQL.... [ OK ]
- [root@node4 mysql5.5]# mysql
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 1
- Server version: 5.5.22-log Source distribution
- Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- mysql> show variables like '%log';
- +--------------------------------+-------+
- | Variable_name | Value |
- +--------------------------------+-------+
- | back_log | 50 |
- | general_log | OFF |
- | innodb_locks_unsafe_for_binlog | OFF |
- | log | OFF |
- | relay_log | |
- | slow_query_log | OFF |
- | sync_binlog | 0 |
- | sync_relay_log | 0 |
- +--------------------------------+-------+
- 8 rows in set (0.00 sec)
- ----备注:log和general_log这两个参数是兼容的。而默认的情况下查询日志是不开启的
- ----使用下面的命令是开启查询日志
mysql> set global log=1;- Query OK, 0 rows affected, 1 warning (0.03 sec)
- mysql> show variables like '%log';
- +--------------------------------+-------+
- | Variable_name | Value |
- +--------------------------------+-------+
- | back_log | 50 |
- | general_log | ON |
- | innodb_locks_unsafe_for_binlog | OFF |
- | log | ON |
- | relay_log | |
- | slow_query_log | OFF |
- | sync_binlog | 0 |
- | sync_relay_log | 0 |
- +--------------------------------+-------+
- 8 rows in set (0.00 sec)
- ----其中log参数是过时的,在启动选项中使用log参数的话,会在err日志中显示出来。
----修改my.cnf文件,添加log的参数设置- [root@node4 mysql5.5]# vi my.cnf
- [root@node4 mysql5.5]# cat ./my.cnf |grep '^log='
- log=/tmp/mysqlgen.log
- ----清空err日志
[root@node4 mysql5.5]# cat /dev/null > /tmp/mysql3306.err- [root@node4 mysql5.5]# ll /tmp/mysql3306.err
- -rw-rw---- 1 mysql root 0 Jul 31 07:50 /tmp/mysql3306.err
- [root@node4 mysql5.5]# service mysql start
- Starting MySQL... [ OK ]
- ----启动数据库后查看err日志的内容
[root@node4 mysql5.5]# cat /tmp/mysql3306.err- 130731 07:51:32 mysqld_safe Starting mysqld daemon with databases from /opt/mysql5.5/data
- 130731 7:51:32 [Warning] The syntax '--log' is deprecated and will be removed in a future release. Please use '--general-log'/'--general-log-file' instead.
- 130731 7:51:33 InnoDB: The InnoDB memory heap is disabled
- 130731 7:51:33 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
- 130731 7:51:33 InnoDB: Compressed tables use zlib 1.2.3
- 130731 7:51:33 InnoDB: Initializing buffer pool, size = 128.0M
- 130731 7:51:33 InnoDB: Completed initialization of buffer pool
- 130731 7:51:33 InnoDB: highest supported file format is Barracuda.
- 130731 7:51:33 InnoDB: Waiting for the background threads to start
- 130731 7:51:34 InnoDB: 1.1.8 started; log sequence number 1625855
- 130731 7:51:34 [Note] Event Scheduler: Loaded 0 events
- 130731 7:51:34 [Note] /opt/mysql5.5/bin/mysqld: ready for connections.
- Version: '5.5.22-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution
- ----使用最新的参数
- ----general_log和general_log_file。
- [root@node4 mysql5.5]# service mysql stop
- Shutting down MySQL. [ OK ]
- [root@node4 mysql5.5]# vi my.cnf
- [root@node4 mysql5.5]# cat ./my.cnf |grep '^general'
- general_log = 1
- general_log_file = /tmp/mysqlgen.log
- [root@node4 mysql5.5]# service mysql start
- Starting MySQL... [ OK ]
- [root@node4 mysql5.5]# mysql
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 1
- Server version: 5.5.22-log Source distribution
- Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- mysql> show variables like '%log';
- +--------------------------------+-------+
- | Variable_name | Value |
- +--------------------------------+-------+
- | back_log | 50 |
- | general_log | ON |
- | innodb_locks_unsafe_for_binlog | OFF |
- | log | ON |
- | relay_log | |
- | slow_query_log | OFF |
- | sync_binlog | 0 |
- | sync_relay_log | 0 |
- +--------------------------------+-------+
- 8 rows in set (0.04 sec)
- mysql> show variables like '%file';
- +---------------------+-----------------------------------+
- | Variable_name | Value |
- +---------------------+-----------------------------------+
- | ft_stopword_file | (built-in) |
- | general_log_file | /tmp/mysqlgen.log |
- | init_file | |
- | local_infile | ON |
- | pid_file | /tmp/mysql3306.pid |
- | relay_log_info_file | relay-log.info |
- | slow_query_log_file | /opt/mysql5.5/data/node4-slow.log |
- +---------------------+-----------------------------------+
- 7 rows in set (0.00 sec)
- ----在上面的操作中可以看到已经启用查询日志,并且文件目录是/tmp/mysqlgen.log。
----查询日志记录了哪些东西?- 进行下面的查询
mysql> show databases;- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | test |
- | test2 |
- +--------------------+
- 5 rows in set (0.08 sec)
- mysql> use test;
- Database changed
- mysql> show tables;
- Empty set (0.00 sec)
- mysql> use test2;
- Database changed
- mysql> show tables;
- +-----------------+
- | Tables_in_test2 |
- +-----------------+
- | course |
- | jack |
- | sc |
- | student |
- | t |
- | teacher |
- +-----------------+
- 6 rows in set (0.07 sec)
- mysql> drop table t;
- Query OK, 0 rows affected (0.13 sec)
- mysql> select * from sc;
- Empty set (0.04 sec)
- ----可以看到上面的操作都记录在了mysqlgen.log里面。
[root@node4 ~]# tail -f /tmp/mysqlgen.log- /opt/mysql5.5/bin/mysqld, Version: 5.5.22-log (Source distribution). started with:
- Tcp port: 3306 Unix socket: /tmp/mysql.sock
- Time Id Command Argument
- 130731 7:55:41 1 Query show databases
- 130731 7:55:56 1 Query SELECT DATABASE()
- 1 Init DB test
- 130731 7:55:59 1 Query show tables
- 130731 7:56:19 1 Query SELECT DATABASE()
- 1 Init DB test2
- 130731 7:56:23 1 Query show tables
- 130731 7:56:27 1 Query drop table t
- 130731 7:56:39 1 Query select * from sc
Mysql query log的更多相关文章
- mysql general log 查看mysql 运行历史
我们有时候须要查看mysql的运行历史,比方我们做sql优化的时候,起码要知道运行的sql是什么.框架通常会帮我们拼装sql,所以在程序中不一定能够打印出sql,这个时候就须要mysql的genera ...
- MySQL:动态开启慢查询日志(Slow Query Log)
前言 在开发中,高效能的程序 也包括 高效能的查询,所以优化SQL也是程序员必要技能之一.要优化就必须要有慢日志记录才可以知道哪些查询慢,然后反向去修改 慢日志设置方式 写入文件 写入数据库 实践操作 ...
- Mysql slow query log
一.概念部分: 顾名思义,慢查询日志中记录的是执行时间较长的query,也就是我们常说的slow query,通过设--log-slow-queries[=file_name]来打开该功能并设置记录 ...
- mysql中slow query log慢日志查询分析
在mysql中slow query log是一个非常重要的功能,我们可以开启mysql的slow query log功能,这样就可以分析每条sql执行的状态与性能从而进行优化了. 一.慢查询日志 配置 ...
- mysql慢查询Slow Query Log和未使用索引(Not Using Indexes)查询配置和使用
mysql的“慢查询”指的是超过了允许的最大查询时间(long_query_time)的sql语句,而“未使用索引”查询顾名思义就是查询语句没有使用到索引的sql语句. 慢查询配置和使用 在msyql ...
- MySQL 一般查询日志(General Query Log)
与大多数关系型数据库,日志文件是MySQL数据库的一个重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志.慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...
- MySQL 通用查询日志(General Query Log)
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysql ...
- MySQL专题 2 数据库优化 Slow Query log
MySQL Server 有四种类型的日志——Error Log.General Query Log.Binary Log 和 Slow Query Log. 第一个是错误日志,记录 mysqld 的 ...
- MySQL 慢查询日志(Slow Query Log)
同大多数关系型数据库一样.日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件.通常包含错误日志文件,二进制日志,通用日志.慢查询日志.等等.这些日志能够帮助我们定位mysqld内 ...
随机推荐
- 前端实战——前端效果accordition的实现
一.bootstrap实现 1)水平折叠组件 使用panel和collaspe组件 <!doctype html> <html lang="zh-hans"> ...
- Go prepare statment超过mysql最大数
mysql_stmt_prepare failed! error(1461)Can't create more than max_prepared_stmt_count statements (cur ...
- Swing 顶层容器
顶层容器值得是容纳其他容器的容器组件,包括JFrame类,JWindows类,JDialog类,JApplet等.Swing中的顶层容器类Swing提供三个顶层容器类:JFrame,JDialog和J ...
- 网卡流量查看软件bmon
bmon 时 linux下最常用的查看网络带宽的工具,debian下直接进行安装即可 apt-get install bmon redhat下可以在这里寻找到合适版本的rpm包,安装完毕后执行bmon ...
- Oracle sqlldr导入导出txt数据文件详解
一.sqlldr导入txt 1.预备 a).txt文件 这里要保存成无签名的UTF-8 b).oracle建表 2.编写控制文件input_test.ctl LOAD DATA CHARACTERSE ...
- linux 缺少动态连接库.so--cannot open shared object file: No such file or directory
error while loading shared libraries的解決方法 执行行程式時,如此遇到像下列這種錯誤: ./tests: error while loading shared l ...
- From Disk partition to PostgreSQL installation
From Disk partition to PostgreSQLinstallation [root@compute mnt]# fdisk /dev/sdb Welcome to fdisk (u ...
- Lintcode: Route Between Two Nodes in Graph
Given a directed graph, design an algorithm to find out whether there is a route between two nodes. ...
- JAVA-封装-静态属性
1.使用 1.static 2.用来修饰属性.方法.内部类.代码块 3.称为类属性,静态属性,类方法,静态方法 3.不需要实例化,直接用类名或静态成员名调用 2.特点 1.静态属性对于类的所有实例是共 ...
- cookie 使用笔记
参考书<JSP Web 开发案例教程> index.jsp页面 dologin.jsp页面 welcome.jsp页面 页面显示 点击提交