MYSQL 日志问题

代码
mysql有以下几种日志:   
  错误日志: 
-log-err   
  查询日志: 
-log   
  慢查询日志: 
-log-slow-queries   
  更新日志: 
-log-update   
  二进制日志: 
-log-bin   


是否启用了日志  
mysql
>show variables like 'log_%';  

怎样知道当前的日志  
mysql
> show master status;  

顯示二進制日志數目  
mysql
> show master logs;  

看二进制日志文件用mysqlbinlog  
shell
>mysqlbinlog mail-bin.000001  
或者shell
>mysqlbinlog mail-bin.000001 | tail  

在配置文件中指定log的輸出位置.  
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。  
Linux:Linux 的配置文件为 my.cnf ,一般在 
/etc 下。  

在linux下:  

Sql代码  
# 在[mysqld] 中輸入   
#log   
log
-error=/usr/local/mysql/log/error.log   
log
=/usr/local/mysql/log/mysql.log   
long_query_time
=2   
log
-slow-queries= /usr/local/mysql/log/slowquery.log   
# 在[mysqld] 中輸入
#log
log
-error=/usr/local/mysql/log/error.log
log
=/usr/local/mysql/log/mysql.log
long_query_time
=2
log
-slow-queries= /usr/local/mysql/log/slowquery.log


windows下:  

Sql代码  
# 在[mysqld] 中輸入   
#log   
log
-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"   
log
="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"   
long_query_time
=2   
log
-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"   
# 在[mysqld] 中輸入
#log
log
-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"
log
="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"
long_query_time
=2
log
-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"


开启慢查询  
long_query_time 
=2 --是指执行超过多久的sql会被log下来,这里是2秒  
log
-slow-queries= /usr/local/mysql/log/slowquery.log --将查询返回较慢的语句进行记录  

log
-queries-not-using-indexes = nouseindex.log --就是字面意思,log下来没有使用索引的query  

log
=mylog.log --对所有执行语句进行记录 

代码
日志的查看很简单,大部分都是文本,直接用vim、less、more之类的工具看就可以了,值得说明的是二进制文件的查看:

1). 首先确定是否开启了二进制文件记录功能
mysql
>show variables like 'log_bin';

2). 如果你想知道现在记录二进制数据的文件具体信息,你可以通过下列语句看到现在正在记录哪个文件,以及记录的当前位置:
mysql
>show master status;

3). 查看二进制数据需要借助程序mysqlbinlog,看看它支持哪些选项,根据自己需要来使用。
mysql
>mysqlbinlog /var/log/mysql/mysql-bin.000040;
查询某个时间范围的可以执行下列语句,如果记录很多可以将结果定向到一个文件里自己慢慢看:
-) :
mysql
>mysqlbinlog --start-datetime='2008-01-01 00:00:00' --stop-datetime='2008-08-08 00:00:00'  /var/log/mysql/mysql-bin.000040 > ./tmp.log

 


 

posted @ 2010-08-06 13:24  derrck  阅读(303)  评论(0编辑  收藏  举报