日常工作中总会查看一些sql语句到底在数据库里面是如何操作的,其实mysql会提供一些相关的功能.来实现我们对查询的跟踪工作.
第一种: 查看当前正在执行的查询
SHOW PROCESSLIST;
在mysql里面直接输入这个命令能够查看当前正在执行的查询,包括查询的一些状态,能够确定表现在的状态. 针对一些查询慢.可以先研究下这个命令分析下原因.
第二种,查看概要日志.
在mysql的shell里面 输入show variables like '%general%';
此时会显示概要日志的状态. 有两个变量被显示出来 分别是
general_log_file
general_log
第一个变量标识概要日志的存储路径
第二个变量标识当前概要日志是否开启 .
使用命令
set @@global.general_log=1;
和命令
set @@global.general_log_file=/home/users/someone/xxx;
能够指定日志是否开启和指定日志的存储路径.
第三种,binlog
binlog是mysql提供的一种二进制日志文件,里面包含的信息比概要信息还要多.但是打印出来的格式.并不是直接可读的.
binlog平时被用来做文件备份和数据恢复等操作. 同时也是主从同步用到的.
配置binlog
在mysql里面 mysqld的配置段中 有
log-bin=mysql-bin
就是已经开启了binlog了
或者通过mysql的命令行
show variables like 'log_%';
查看是否开始了binlog ,开启了会显示 bin_log ON
如何查看?
binlog会被数据库产出成数据文件存储在数据目录中 .通过
SHOW VARIABLES LIKE 'data_%';
查看数据文件目录 .
目录下面会有 mysql-bin.0000x这样的文件 .这就是binlog了
使用mysql给提供的工具 mysqlbinlog 来查看binlog文件 这里面的记录非常详细 .而且打开后文件会很大 .
其实可以把你关注的binlog转成可读形式 ,在使用工具来看 例如grep等.
日常工作中 .针对mysql的日志查看基本就这几种方式.