利用MySQL 二进制日志恢复数据库
2009-03-02 17:36
483 查看
今天无意当中误操作了自己机器上数据库中的一个表。本来也没什么大事。但是后来一想万一遇到这种情况我该什么办?打开了手册看了一下,如果在启动MySQL时启用了bin日志,则可以利用日志来恢复。
MySQL的二进制日志记录了对数据库进行修改的所有SQL语句。当然在恢复之前你需要事先知道当前的MySQL的二进制日志的位置和名称,默认情
况下,MySQL会将这个文件直接放在数据目录下。但是你可以在启动服务器时使用--login-path来改写这个值。当然你也可以在配置文件中配置该
选项。可以使用下列命令来查看:
进入MySQL控制台后:
mysql> SHOW MASTER STATUS
直接在SHELL中执行:
shell> mysql -u root -p -E -e “SHOW MASTER STATUS”
1、恢复到数据库的某个点
使用mysqlbinlog的–start-date和–stop-date参数来指定一个点。如:
mysqlbinlog –stop-date="2005-04-20 9:59:59″ /var/log/mysql/bin.123456 | mysql -u root -p
如果不知道具体出错的时间或无法确定,可以查看日志来决定一个合理的时间:
mysqlbinlog /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
2、从指定的LOG恢复(从特定位置恢复)是指你可以从指定的日志的某个位置恢复。
如何确定位置和上面是差不多的。
SHELL>mysqlbinlog –start-date="2005-04-20 9:55:00″ /
–stop-date="2005-04-20 10:05:00″ /
/var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
然后可以打开那个文本找到你不想执行的SQL语句,记录下它的位置。然后:
shell> mysqlbinlog –stop-position="368312″ /var/log/mysql/bin.123456 /
| mysql -u root -p
将记录恢复到指定位置之前的状态。
shell> mysqlbinlog –start-position="368315″ /var/log/mysql/bin.123456 /
| mysql -u root -p
恢复从这个位置开始往后所执行的所有SQL语句。
MySQL的二进制日志记录了对数据库进行修改的所有SQL语句。当然在恢复之前你需要事先知道当前的MySQL的二进制日志的位置和名称,默认情
况下,MySQL会将这个文件直接放在数据目录下。但是你可以在启动服务器时使用--login-path来改写这个值。当然你也可以在配置文件中配置该
选项。可以使用下列命令来查看:
进入MySQL控制台后:
mysql> SHOW MASTER STATUS
直接在SHELL中执行:
shell> mysql -u root -p -E -e “SHOW MASTER STATUS”
1、恢复到数据库的某个点
使用mysqlbinlog的–start-date和–stop-date参数来指定一个点。如:
mysqlbinlog –stop-date="2005-04-20 9:59:59″ /var/log/mysql/bin.123456 | mysql -u root -p
如果不知道具体出错的时间或无法确定,可以查看日志来决定一个合理的时间:
mysqlbinlog /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
2、从指定的LOG恢复(从特定位置恢复)是指你可以从指定的日志的某个位置恢复。
如何确定位置和上面是差不多的。
SHELL>mysqlbinlog –start-date="2005-04-20 9:55:00″ /
–stop-date="2005-04-20 10:05:00″ /
/var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
然后可以打开那个文本找到你不想执行的SQL语句,记录下它的位置。然后:
shell> mysqlbinlog –stop-position="368312″ /var/log/mysql/bin.123456 /
| mysql -u root -p
将记录恢复到指定位置之前的状态。
shell> mysqlbinlog –start-position="368315″ /var/log/mysql/bin.123456 /
| mysql -u root -p
恢复从这个位置开始往后所执行的所有SQL语句。
相关文章推荐
- 8、利用Mysql的二进制日志文件,进行数据库数据的恢复
- 利用二进制日志恢复数据库
- mysql二进制日志文件恢复数据库
- MySQL使用二进制日志恢复数据库
- 如何通过Mysql的二进制日志恢复数据库数据
- 如何通过Mysql的二进制日志恢复数据库数据
- 如何通过Mysql的二进制日志恢复数据库数据
- 详解如何通过Mysql的二进制日志恢复数据库数据
- MySQL使用二进制日志恢复数据库
- 详解mysql的二进制日志恢复数据库
- 通过Mysql的二进制日志恢复数据库数据
- mysql 利用二进制日志进行数据恢复(mysqlbinlog)
- 如何通过 MySQL 的二进制日志恢复数据库数据
- MySQL使用二进制日志恢复数据库
- 基于mysql二进制日志的数据库恢复
- 如何通过Mysql的二进制日志恢复数据库数据
- 如何通过Mysql的二进制日志恢复数据库数据
- 通过 MySQL 的二进制日志恢复数据库数据
- 如何通过 MySQL 的二进制日志恢复数据库数据
- mysql 利用二进制日志来进行恢复数据的实例操作