MySQL数据库恢复(使用mysqlbinlog命令)

1:开启binlog日志记录 
修改mysql配置文件mysql.ini,在[mysqld]节点下添加 

复制代码代码如下:

# log-bin 
log-bin = E:/log/logbin.log 


路径中不要包含中文和空格。重启mysql服务。通过命令行停止和启动mysql服务 

复制代码代码如下:

c:\>net stop mysql; 
c:\>net start mysql; 


进入命令行进入mysql并查看二进制日志是否已经启动 
Sql代码 

复制代码代码如下:

mysql>show variables like 'log_%'; 


日志成功开启后,会在E:/log/目录下创建logbin.index和logbin.000001两个文件。logbin.000001就是数据库的备份文件,以后就可以通过此文件对数据库进行恢复操作。 

2:查看备份的二进制文件 
Sql代码 

复制代码代码如下:

c:\mysql\bin\>mysqlbinlog e:/log/logbin.000001 


日后记录的操作多了,命令行方式基本就用不上了。可以使用将日志导出文件的方式来查看日志内容 
2.1 导出 
Xml代码 

复制代码代码如下:

c:\mysql\bin\>mysqlbinlog e:/log/logbin.000001 > e:/log/log.txt 


">": 导入到文件中; ">>": 追加到文件中 
如果有多个日志文件 
Sql代码 

复制代码代码如下:

c:\mysql\bin\> mysqlbinlog e:/log/logbin.000001 > e:/log/log.sql 
c:\mysql\bin\> mysqlbinlog e:/log/logbin.000002 >> e:/log/log.sq 


2.2 按指定位置导出: 
Sql代码 

复制代码代码如下:

c:\mysql\bin\>mysqlbinlog --start-position=185 --stop-position=338 e:/log/logbin.000001 > e:/log/log3.txt 


2.3 按指定时间导出: 
Xml代码 

复制代码代码如下:

c:\mysql\bin\>mysqlbinlog --start-datetime="2010-01-07 11:25:56" --stop-datetime="2010-01-07 13:23:50" e:/log/logbin.000001 > e:/log/log_by_date22.txt 


3:从备份恢复数据库 
做了一次更新操作,之后日志的内容如下: 
Sql代码 

复制代码代码如下:

/*!40019 SET @@session.max_insert_delayed_threads=0*/; 
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; 
DELIMITER /*!*/; 
# at 4 
#110107 13:23:50 server id 1 end_log_pos 106 Start: binlog v 4, server v 5.1.53-community-log created 110107 13:23:50 at startup 
# Warning: this binlog is either in use or was not closed properly. 
ROLLBACK/*!*/; 
BINLOG ' 
ZqMmTQ8BAAAAZgAAAGoAAAABAAQANS4xLjUzLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAABmoyZNEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC 
'/*!*/; 
# at 106 
#110107 13:26:58 server id 1 end_log_pos 185 Query thread_id=44 exec_time=1 error_code=0 
SET TIMESTAMP=1294378018/*!*/; 
SET @@session.pseudo_thread_id=44/*!*/; 
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1/*!*/; 
SET @@session.sql_mode=1344274432/*!*/; 
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; 
/*!\C utf8 *//*!*/; 
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/; 
SET @@session.lc_time_names=0/*!*/; 
SET @@session.collation_database=DEFAULT/*!*/; 
BEGIN 
/*!*/; 
# at 185 
#110107 13:26:58 server id 1 end_log_pos 338 Query thread_id=44 exec_time=1 error_code=0 
use ncl-interactive/*!*/; 
SET TIMESTAMP=1294378018/*!*/; 
UPDATE `t_system_id` SET `id_value`='3000' WHERE (`table_name`='t_working_day') 
/*!*/; 
# at 338 
#110107 13:26:58 server id 1 end_log_pos 365 Xid = 8016 
COMMIT/*!*/; 
DELIMITER ; 
DELIMITER /*!*/; 
DELIMITER ; 
# End of log file 
ROLLBACK /* added by mysqlbinlog */; 
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; 
/*!40019 SET @@session.max_insert_delayed_threads=0*/; 
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; 
DELIMITER /*!*/; 
# at 4 
#110107 13:23:50 server id 1 end_log_pos 106 Start: binlog v 4, server v 5.1.53-community-log created 110107 13:23:50 at startup 
# Warning: this binlog is either in use or was not closed properly. 
ROLLBACK/*!*/; 
BINLOG ' 
ZqMmTQ8BAAAAZgAAAGoAAAABAAQANS4xLjUzLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAABmoyZNEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC 
'/*!*/; 
# at 106 
#110107 13:26:58 server id 1 end_log_pos 185 Query thread_id=44 exec_time=1 error_code=0 
SET TIMESTAMP=1294378018/*!*/; 
SET @@session.pseudo_thread_id=44/*!*/; 
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1/*!*/; 
SET @@session.sql_mode=1344274432/*!*/; 
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; 
/*!\C utf8 *//*!*/; 
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/; 
SET @@session.lc_time_names=0/*!*/; 
SET @@session.collation_database=DEFAULT/*!*/; 
BEGIN 
/*!*/; 
# at 185 
#110107 13:26:58 server id 1 end_log_pos 338 Query thread_id=44 exec_time=1 error_code=0 
use ncl-interactive/*!*/; 
SET TIMESTAMP=1294378018/*!*/; 
UPDATE `t_system_id` SET `id_value`='3000' WHERE (`table_name`='t_working_day') 
/*!*/; 
# at 338 
#110107 13:26:58 server id 1 end_log_pos 365 Xid = 8016 
COMMIT/*!*/; 
DELIMITER ; 
DELIMITER /*!*/; 
DELIMITER ; 
# End of log file 
ROLLBACK /* added by mysqlbinlog */; 
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; 


3.1 恢复: 
Sql代码 

复制代码代码如下:

c:\mysql\bin\>mysqlbinlog e:/log/logbin.000001 | mysql -u root -p 


3.2 按指定位置恢复: 
Sql代码 

复制代码代码如下:

c:\mysql\bin\>mysqlbinlog --start-position=185 --stop-position=338 e:/log/logbin.000001 | mysql -u root -p 


3.3 按指定时间恢复: 
Xml代码 

复制代码代码如下:

c:\mysql\bin\>mysqlbinlog --start-datetime="2010-01-07 11:25:56" --stop-datetime="2010-01-07 13:23:50" e:/log/logbin.000001 | mysql -u root -p 


3.4 通过导出的脚本文件恢复 
Sql代码 

复制代码代码如下:

c:\mysql\bin\>mysql -e "source e:/log/log.sql" 


4.其他常用操作 
4.1 查看所有日志文件 

Sql代码 

复制代码代码如下:

mysql>show master logs; 


4.2 当前使用的binlog文件 
Sql代码 

复制代码代码如下:

mysql>show binlog events \g; 


4.3 产生一个新的binlog日志文件 
Sql代码 

复制代码代码如下:

mysql>flush logs; 


4.4 删除所有二进制日志,并从新开始记录(注意:reset master命令会删除所有的二进制日志) 
Sql代码 

复制代码代码如下:

mysql > flush logs; 
mysql > reset master; 


4.5 快速备份数据到sql文件 

Sql代码 

复制代码代码如下:

c:\mysql\bin>mysqldump -u root -p --opt --quick interactive > e:/log/mysqldump.sql 


为了方便查看,把从脚本恢复的命令在写一次 
Sql代码 

复制代码代码如下:

c:\mysql\bin\>mysql -e "source e:/log/mysqldump.sql" 

转载于:https://www.cnblogs.com/xiaoleiel/p/8316714.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 创建数据库文件_mysql学习之通过文件创建数据库以及添加数据

1、# 创建数据库语句create database mydb default character set utf8;# 运用数据库语句use mydb;# 创建表格,这里只简单的创建一张表格# 设置InnoDB主要是为了事务操作的需要create table mytable(id int primary key auto_increment,name varchar(20),count int …

angularjs启动项目报ERROR in AppModule is not an NgModule解决方法

这主要是ts编译器版本问题,一般是因为ts编译器版本过高导致。 解决方式: npm uninstall -g typescriptnpm install -g typescripttsc -v 查看安装的typescript版本修改package.json中的typescript版本为当前电脑所安装版本 删除node_module重新安装cnpm …

mysql gtid 备份恢复_MYSQL数据库备份恢复

在实例存活的情况,可以在实例状态中查询ALL_GTID。在实例崩溃的情况,无法在实例状态中查询ALL_GTID。可以通过查询BINLOG中的Previous-GTIDs计算来获得ALL_GTID。下面列举与ALL_GTID相关的变量。与ALL_GTID相关的变量Previous-GTIDsPrevious-GTIDs格式如…

PMP 笔记

项目: 为创造独特的产品、服务或结果而进行的临时性工作。 项目特征: 独特性:Unique、临时性:Temporary、渐进明细。 渐进明细:预算越来越精细。比如三峡工程中,预算从10亿级的误差到1亿误差,再…

在mysql怎样查询地址和电话_Mysql数据查询

Mysql查询数据多次过滤条件:from、where、group by、having、distinct、order by、limit > 层层筛选后的结果查:select [distinct] 字段1 [[as] 别名1],...,字段n [[as] 别名n] from [数据库名.]表名 [条件];注:一条查询语句,可…

谷歌搜索技巧:搜索语法+隐藏彩蛋+高级设置

Google是一个非常精密成熟的搜索引擎,其搜索结果的丰富性和准确度较其他搜索引擎都要好,但大多数用户都还只是停留在搜索框中输入一两个关键字,然后点击“搜索”按钮的阶段,这一过程是非常低效和无谓的。学习一些搜索引擎常用的搜…

mysql如何给表字段加密_Mysql 字段加密

1、PASSWORD()2、ENCODE(,) DECODE(,)3、MD5()4、SHA5()5、AES_ENCRYPT AES_DECRYPT加密 select aes_encrypt(name, password );解密 select aes_decrypt(aes_encrypt(name, password ), password );可用hex或base64转码(base64在mysql5.6及以上支持)select hex(aes_en…

mysql数据类型支持比较运_Mysql支持的数据类型(总结)

一.数值类型Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形&#x…

Java 面向对象的设计思维

面向对象的设计思维:合适的方法应该出现在合适的类里面 |解释|:方法是哪个类的,方法便在哪个类里,由这个类去调用 |实际应用|:基本数据类型包装类:因为想要对基本类型数据进行更多的操作,最方便的方式就是将其封装成对象.在对象的描述中定义更多的属性和…

i5 1135g7什么水平_i7-10510U和i5-1135G7对比,该怎么选择呢?

导读:新旧笔记本交替,intel十代i7是否还有与十一代i5一战之力?两者之间差距多少呢?作为买家,肯定想要了解下的哈!! 参数对比 对比项i7-10510U的参数i5-1135G7的参数CPU主频1.8GHz2.4GHz最高睿频4.9GHz4.2GHz三级缓存8MB8MBC/T四核八线程四核八线程核显频率1.15GHZ1.3GHZ…

《学习心得》

最近在学习设计模式,正好也要做毕业设计,就想着把学到的一些皮毛用到毕业设计上面去,结果真的是无从下手。也看了很多其他人关于设计模式的博客,讲了很多很多的好处,但是就是不知道该怎么样运用到实际的项目上去。 毕业…

java获取硬盘序列号_Win7 64+Python3.7获取计算机硬盘信息初探

一、需求由于最近负责电脑资产清查的工作,有100多台分散的电脑需要获得用户名、MAC地址、硬盘序列号、硬盘品牌一般方法:(1)查看系统用户名(2) 获取MAC地址 windos命令行使用ipconfig /all(3&am…

js for in 获得遍历数组索引和对象属性

for in 遍历对象属性 获取的是对象的属性名 var person { name:"admin", age:"21", address:"shanghai"};for(var i in person){ console.log(i)}结果 取得对象的属性名 for in 获取数组的索引值 var array [admin,manager,db];for(var i in arr…

mysql数据库诊断_RDS MySQL 数据库全量SQL诊断

三大难点问题使用MySQL数据库的用户,不可避免都会遇到下面三个难题:1、历史问题难定位数据库凌晨3点发生了CPU 100%的告警,但是该时间段却没有任何慢SQL,怎么继续查找原因?2、SQL压测模版难获取下周要进行大促压测&…

opencv图像处理时使用stringstream批量读取图片,处理后并保存

简介: 同文件输入输出流一样,使用stringstream可以批量读取图片,处理后并进行保存。因为C中头文件 stringstream既可以从string读数据也可向string写数据,利于其这个特点,我们可以进行批量读取和批量保存工作。 参考程…

大数据可视化案例分析_Tableau数据可视化分析案例

0x00 Tableau简介Tableau是一款定位于数据可视化敏捷开发和实现的商务智能展现工具,可用来实现交互的、可视化的分析和仪表盘应用。Tableau提供了体验感良好且易用的使用界面,在处理大规模、多维数据时,可以即时从不同角度看到数据呈现的规律…

1bit和1byte_1byte等于( )bit_学小易找答案

【单选题】WWW上每个资源都有一个唯一地址,称为( )。【单选题】传输层使用( )地址形式区分应用进程?【简答题】习题13【单选题】在网上传输语音和影像,传输层协议一般采用( )。【简答题】分别求出[0,1) 在六个拓扑空间中的内部和闭包。【单选题】以下算法中属于非对称算法的是…

java吃货联盟app讲解_吃货联盟订餐系统——JAVA实现

package com.chihuo;import java.util.Scanner;public class OrderingMgr {public static void main(String[] args){/*数据初始化*/String[] namesnew String[4];//保存订餐人的姓名String[] dishMegsnew String[4];//保存所选信息,包括菜品名及份数String[] addre…

JavaScript-简单的页面输入控制

1.姓名只能是汉字 var nameCheck /^[\u4e00-\u9fa5]{2,21}$/; if(!nameCheck .test(name)){ alert("输入的姓名中含有非汉字字符!"); return false; }2.简单的身份证校验(校验内容包括数字,位数,以及末尾的x,X)  va…

linux 脚本调用企业微信_shell脚本实现企业微信报警

CorpID"ww3c6298264d839e2f"Secret"YvyMQpMRIoXtdQRWo0RNkMBTZnHWKvBwC3ILkyuCsKQ"agentid1000002Ip$(ip a |grep ens33 |grep inet|awk -F "/" ‘{ print $1 }‘ |awk -F " " ‘{ print $2 }‘)/usr/bin/curl --data-ascii ‘{"…