关于mysql中mysqlbinlog的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql中mysqlbinlog的问题相关的知识,希望对你有一定的参考价值。

我想查看我的二进制日志文件,找DOS里找到了那个二进制文件的路径E:\wamp\mysql\data,然后输入mysqlbinlog mysql_update.000001
结果返回 mysqlbinlog不是内部或者外部命令,或批处理文件
请问是怎么回事?我确认了这个路径下有这个二进制文件
另:怀疑是我用的wamp里没有mysqlbinlog工具,如果是这样,该到哪里去弄,谢谢
回1楼,我CD到bin下面使用mysqlbinlog,也回复没有这个命令。再到bin目录下看,只有mysql.exe、mysqld-nt.exe、mysqldump.exe
是不是缺少mysqlbinlog.exe?到哪里去弄?

参考技术A mysqlbinlog是在mysql安装目录的bin目录下的,你需要切到那个目录执行mysqlbinlog

CentOS下利用mysqlbinlog恢复MySQL数据库

如果不小心对数据库进行误操作,而又没有及时备份怎么办?这恐怕是广大的coder经常遇到的一类问题。
我今天就因为不小心删除了某个数据库,但最后的备份是1个礼拜前的,唯一能解决的办法就是通过mysqlbinlog来恢复了。解决方案如下:

如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始(例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。
关于启用二进制日志的信息,参见5.11.3节,“二进制日志”。对于mysqlbinlog的详细信息,参见mysql手册8.6节,“mysqlbinlog:用于处理二进制日志文件的实用工具”。
要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名。
一般可以从配置文件(一般情况,Linux下为my.cnf ,windows系统下为my.ini,取决于你的系统)中找到路径。如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出。
启用二进制日志的选项为–log-bin。
要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句:
SHOW BINLOG EVENTS G;
或者还可以从命令行输入下面的内容:
mysql –user=root -pmypasswd -e ‘SHOW BINLOG EVENTS G’ 将密码mypasswd替换为你的MySQL服务器的root密码。

比如得到的日志文件名为:
mysql-bin.000001 1. 指定恢复时间 对于MySQL5.1.54,可以在mysqlbinlog语句中通过–start-date和–stop-date选项指定DATETIME格式的起止时间。

举例说明,比如在今天下午14:02(今天是2012年3月15日),不小心执行SQL语句删除了一个数据表,但发现没有最新的备份(当然,这只是开发环境,并不是正式的生产环境,正式环境还得定时做数据备份)。要想恢复表和数据,可以通过mysqlbinlog恢复指定时间的备份,输入:
mysqlbinlog –stop-date=”2012-03-15 14:02:00″ /data1/log/mysql/mysql-bin.000001  | mysql -u root -pmypasswd
该命令将恢复截止到在–stop-date选项中以DATETIME格式给出的日期和时间的所有数据。

如果你没有检测到输入的错误的SQL语句,可能你想要恢复后面发生的数据库活动。
根据这些,你可以用起使日期和时间再次运行mysqlbinlog:
mysqlbinlog –start-date=”2012-03-15 00:01:00″ /data1/log/mysql/mysql-bin.000001  | mysql -u root -pmypasswd

在该行中,从今天凌晨0:01登录的SQL语句将运行,组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到今天凌晨0:01前一秒钟。
你应检查日志以确保时间确切。下一节介绍如何实现。

2. 指定时间段恢复 通过mysqlbinlog –start-date 和–stop-date恢复指定时间段的数据库活动记录,如下:
mysqlbinlog –start-date=”2012-03-09 02:00:00″ –stop-date=”2012-03-15 14:00:00″ /data1/log/mysql/mysql-bin.000001 > /tmp/mysql_restore_030915.sql
通过这种方式,就能获取最后一个备份的文件时间2012-03-09 02:00:00到今天删除数据库之前2012-03-15 14:02这段时间的数据库活动事务操作


















以上是关于关于mysql中mysqlbinlog的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于mysqlbinlog的重要性.

CentOS下利用mysqlbinlog恢复MySQL数据库

mysql binlog日志说明及设置

如何读取mysql binlog 解析

mysqlbinlog的问题求助

消息队列的面试题5