视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql日志恢复数据方法介绍
2020-11-09 09:51:54 责编:小采
文档

利用日志恢复数据一般情况是你没对数据库进行有效和合理的备份导致了,但有一个提前就是你要做日志恢复我们就必须是开了mysql日志的,否则是无法进行日志备份的哦。

mysql日志备份优缺点

优点:是想恢复到某个时间点,或某个操作sql语句

缺点:就产生庞大的日志文件

window中mysql日志恢复方法

1.开启mysql日志
在my.ini 文件里找到[mysqld],在其下面增加一行log-bin

代码如下

[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
log-bin

默认日志文件名字是以主机命名名字,如果想改为自己定义的名字

代码如下
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#mysql-bin为自定义名字
log-bin = mysql-bin


2.定义日志文件路径

代码如下

#Path to the database root存放日志的路径
datadir="D:/web/mysql/Data/"

3.重启mysql

在上面的路径下会产生两个文件

4.用命令进入mysql

代码如下

mysql> show binlog events ;

上面pos就是开始位置end_log_pos的结束位置
相关命令:
1.查看当前日志开启情况

代码如下

mysql>show variables like 'log%';

2.查看当前日志情况

代码如下

mysql>show master status;

3.显示当前二进制

代码如下

mysql>show binary logs;

5.恢复有两种:
1.是把日志文件保存成sql文件,再用source命令
定位保存用法:在bin的目下:

代码如下
mysqlbinlog --start-position=4 --stop-position=239 d:\web\mysql\data\ mysqlbin-log.000001 >test1.txt

定时间保存用法:在mysql安装bin的目下

代码如下
mysqlbinlog --start-datetime="2013-03-16 13:00:00" --stop-datetime="201
3-03-16 14:00:00" d:\web\mysql\data\ mysqlbin-log.000001 >test1.txt

代码如下
source test1.txt

2.直接把日志恢复到某个点上
定时间还原法:在mysql安装bin的目下

代码如下
mysqlbinlog --start-datetime="2013-03-16 13:00:00" --stop-datetime="201
3-03-16 14:00:00" d:\web\mysql\data\ mysqlbin-log.000001 | mysql -uroot -p

定位还原法:在mysql安装bin的目下

代码如下
D:\web\mysql\bin>mysqlbinlog --start-position=3696 --stop-position=4241 d:\web\
ysql\data\mysql-bin.000001 | mysql -hlocalhost -uroot -p

PS:如果在创建表和操作表的过程有错误,在还原的时候也是会有错误的,那得部分定位来还原。(下面是我操作过程中一个小报错,Duplicate entry '1' for key 1
去掉auto_increment,或者不要给有auto_increment的字段赋值便可解决),有兴趣的朋友可以简单创建一个表,增加数据,然后删除数据,利用上面步骤看看哈

下载本文
显示全文
专题