MySQL 日志的启用与关闭

2014-11-24 18:12:12 · 作者: · 浏览: 0

在mysql 安装后可以启动 bin-log 功能,以记录数据库的数据操作的记录,必要时候恢复数据,mysql的日志分为以下几种:


错误日志: -log-err


查询日志: -log


慢查询日志: -log-slow-queries


更新日志: -log-update


二进制日志: -log-bin


查看是否启用了日志:


mysql>show variables like 'log_%';


要启动mysql 的二进制日志,很简单,步骤如下:


一 配置mysql 的my.ini,在[mysqld] 下添加


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命令查看日志:


mysqlbinlog ..\log-bin\logbin.000001


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


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


mysqlbinlog ..\log-bin\logbin.000001 ->a.sql


C:\Program Files\MySQL\MySQL Server 5.0\bin>
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqlbinlog ..\log_bin_ljs\logbin.000001
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#100830 16:30:55 server id 1 end_log_pos 98 Start: binlog v 4, server v 5.0.
67-community-nt-log created 100830 16:30:55 at startup
# Warning: this binlog was not closed properly. Most probably mysqld crashed wri
ting it.
ROLLBACK/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/ ;


C:\Program Files\MySQL\MySQL Server 5.0\bin>