mysql日志

在mysql 安装后可以启动 bin-log 功能,以记录数据库的数据操作的记录,必要时候恢复数据,mysql的日志分为以下几种:
  错误日志:     -log-err
   查询日志:     -log
   慢查询日志:   -log-slow-queries
   更新日志:     -log-update
   二进制日志: -log-bin
    查看是否启用了日志:

[c-sharp] view plain copy
  1. mysql>show variables like 'log_%';  

 

   要启动mysql 的二进制日志,很简单,步骤如下:
    配置mysql 的my.ini,在[mysqld] 下添加

[c-sharp] view plain copy
  1. log-bin = C:/Program Files/MySQL/MySQL Server 5.0/log-bin/logbin.log  

 

上面是配置mysql二进制日志存放的目录,目录可以随便指定,我是在mysql安装的根目录下新建了log-bin文件夹作为存放二进制日志文件的目录,在指定路径时要注意以下两点:
   1 在目录的文件夹命名中不能有空格,比如“aa bb”文件夹 是不允许的,这样,在访问日志时候会报错;
   2 指定目录时候一定要以*.log结尾,即不能仅仅指定到文件夹的级别,如上面我写的logbin.log,这时候,日志文件的名称是logbin.000001 logbin.000002。。。不然不会有日志文件产生。
     mysql.ini 修改后,保存,然后重启mysql服务,重启后在C:/Program Files/MySQL/MySQL Server 5.0/log-bin 目录下会产生logbin.000001 和 logbin.index 两个文件。
     查看二进制文件
在dos命令行中,进入到mysql的安装目录下,即C:/Program Files/MySQL/MySQL Server 5.0,再进到bin/目录下,执行mysqlbinlog命令查看日志:

[c-sharp] view plain copy
  1. mysqlbinlog ../log-bin/logbin.000001  

 

值得注意的是后面的路径问题,路径可以使用绝对路径也可以使用相对路径,分隔符可以是“/"也可以是“/”,两种分割符都能正常识别,路径中的文件夹名称中不能有空格,这个测试过(如果是绝对路径C:/Program Files/MySQL/MySQL Server 5.0/log-bin/logbin.000001就会报错找不到文件 因为“C:/Program Files”带空格)

   为了方便查看日志内容 可以导出到.sql文件

 

[c-sharp] view plain copy
  1. mysqlbinlog ../log-bin/logbin.000001 ->a.sql 


mysql有以下几种日志:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
默 认情况下,所有日志创建于mysqld数据目录中。通过刷新日志,你可以强制mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。当你执行一个FLUSHLOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,出现日志刷新
1. 错误日志
用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。如果你执行FLUSHLOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出--log-error选项,则不会重新命名)。

如果不指定--log-error,或者(在Windows中)如果你使用--console选项,错误被写入标准错误输出stderr。通常标准输出为你的终端。

2. 通用查询日志                                                            

用--log[=file_name]或-l[file_name]选项启动它。如果没有给定file_name的值,默认名是host_name.log。

3. 慢速查询日志                                                            

用--log-slow-queries[=file_name]选项启动时,mysqld写一个包含所有执行时间超过long_query_time秒的SQL语句的日志文件.如果没有给出file_name值,默认未主机名,后缀为-slow.log。如果给出了文件名,但不是绝对路径名,文件则写入数据目录。

3. 更新日志                                                              

用--log-update[=file_name]选项启动,不推荐使用.


是否启用了日志
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 --对所有执行语句进行记录
windows下开启mysql日志:

在[mysql]下加入这些(基本上等于加在最后面):

log-error=

#Enter a name for the query log file. Otherwise a default namewill be used.

#注:(写成txt文件editplus可以及时重载,不过有时要放在C盘下editplus才可以及时重载)

log= c:/mysql_query.log.txt

#Enter a name for the slow query logfile. Otherwise a default name will be used.

log-slow-queries=

#Enter a name for the update log file.Otherwise a default name will be used.

log-update=

#Enter a name for the binary log.Otherwise a default name will be used.

log-bin=




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值