mysql update失误如何恢复数据

恢复数据
先在my.ini配置文件中加上
[mysqld]
log-bin=mysql-bin (二进制日志名,可以自己定义)
然后如果log-bin开启了
那么之后所有的操作都会记录在mysql-bin日志里
如果没有开启log-bin则需要开启,否则无法恢复数据。

如何查询log-bin是否开启用
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin            | ON    |
+---------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin             | OFF   |
+---------------+-------+
1 row in set (0.01 sec)

如果是OFF就没有开启)。
如何开启log-bin,首先是在my.ini加上log-bin=mysql-bin
然后重启mysql,注意重启不是quit在登录,
而是开始-运行-输入:services.msc-点确定-找到MySQL-在上面右键-重新启动。
然后再用show variables like 'log_bin';
就会发现为on了。
这之后如果执行其他语句
然后用show binlog events in 'xxxxx';  xxxxx为SHOW BINARY LOGS其中的log-name
会发现变化
比如
update sys_menu set url=1;
update sys_menu set url =2;

然后查看所有二进制日志文件


看pos为385是update sys_menu set url=2的

pos为586是update sys_menu set url=1的

然后咱们的目标是导出pos为184这个,再然后再执行导出的

导出pos=385这段至update.sql

然后进入mysql

执行

会发现确实更新会url=2了

遇到的错误与问题:

如何用SHOW BINARY LOGS时出现 you are not using binary log则先重启mysql使log-bin为on
mysqlbinlog --start-position=281 --stop-position=281 mysql-bin.000001 > D:/mysqllog.txt
出现mysqlbinlog file not found
原来要先搜出mysql-bin.000001,写直接或者相对路径才才行,我搜出路径然后
写成mysqlbinlog --start-position=281 --stop-position=281 c:\mysql\mysql server 5.5\mysql-bin.000001 > D:/mysqllog.txt
还是不行,原来路径不能有空格
则把my.ini改成
log-bin="D:/logbin/mysql-bin"
这样生成的log-bin就在D:/logbin/mysql-bin里面了
当然改完log-bin还需要重启mysql,如果启动mysql失败,说明你写my.ini错误,比如logbin这个文件夹没有建
 参考的一些网站

http://kerry.blog.51cto.com/172631/146259
http://zhidao.baidu.com/question/115653100.html              怎样重启mysql服务器
http://hi.baidu.com/zhanglp/item/e91ef70f45e34cca2e4c6bb8      mysqlbinlog路径中的文件夹名称中不能有空格
http://storyxsj.iteye.com/blog/494355                         指定binlog输出路径
http://zhidao.baidu.com/question/89567791.html               Mysql服务无法启动,显示错误1067
http://blog.sina.com.cn/s/blog_610997850100mwv8.html  mysql source命令
http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html#mysql-commands     mysql source命令
http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html#mysqlbinlog  mysqlbinlog命令
http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html      show logs

http://blog.chinaunix.net/uid-24086995-id-127355.html        MYSQL--如何用日志文件恢复数据

你可能感兴趣的:(MySql)