第一步 安装

1.安装MySQL

2.安装Python3

[root@localhost /]#yum install python3

3.下载binlog2sql文件到本地(文件在百度云盘)

[root@localhost /]#mkdir tools

[root@localhost /]#cd tools

[root@localhost tools]# ll

total 317440

-rw-r--r--. 1 root root 317440 Sep 21 23:55 binlog2sql.tar

[root@localhost tools]#tar -xvf binlog2sql.tar

[root@localhost tools]#cd binlog2sql

[root@localhost binlog2sql]# ll

total 52

drwxr-xr-x. 3 mysql mysql 91 Jun 13 08:14 binlog2sql

drwxr-xr-x. 2 mysql mysql 54 Jun 13 07:45 example

-rw-r--r--. 1 mysql mysql 35141 Jun 13 07:45 LICENSE

-rw-r--r--. 1 mysql mysql 9514 Jun 13 07:45 README.md

-rw-r--r--. 1 mysql mysql 54 Jun 13 07:45 requirements.txt

drwxr-xr-x. 2 mysql mysql 37 Jun 13 07:45 tests

4.修改binlog2sql中的requirements.txt,把PyMySQL==0.7.11改为0.9.3,保存退出

[root@localhost binlog2sql]# vi requirements.txt

PyMySQL==0.9.3

wheel==0.29.0

mysql-replication==0.13

5.安装和检查,确保是0.9.3 不然出错

[root@localhost binlog2sql]# pip3 install -r requirements.txt

[root@localhost binlog2sql]# pip3 show pymysql

Name: PyMySQL

Version: 0.9.3

Summary: Pure Python MySQL Driver

Home-page: https://github.com/PyMySQL/PyMySQL/

Author: yutaka.matsubara

Author-email: yutaka.matsubara@gmail.com

License: "MIT"

Location: /usr/local/lib/python3.6/site-packages

Requires:

第二步 准备MySQL数据

1.配置文件最好加入安全目录secure-file-priv=/test,重启MySQL

[root@localhost /]# mkdir test

[root@localhost /]# chown -R mysql.mysql test

[root@localhost mysqldata]#vi my.cnf

secure-file-priv=/test

basedir=/application/mysql

datadir=/data/mysql

socket=/data/mysqldata/mysql.sock

log_error=/data/mysqldata/mysql8.0.err

port=3306

server_id=6

secure-file-priv=/test

autocommit=0

log_bin=/data/mysqldata/mysql-bin

[root@localhost mysqldata]# systemctl start mysqld

注:每个人都配置文件路径都不一样

2.进入MySQL

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 11

Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show master status\g;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 | 156 | | | |

+------------------+----------+--------------+------------------+-------------------+

mysql> create database csdn;

mysql> use csdn

mysql> insert into t1 values(1),(2),(3),(4),(5),(6),(7),(8);

mysql> commit;

mysql> update t1 set id=10 where id=1;

mysql> delete from t1 where id=3;

mysql> commit;

第三步 测试 进入binlog2sql目录下的binlog2sql下

[root@localhost binlog2sql]# pwd

/tools/binlog2sql/binlog2sql

[root@localhost binlog2sql]# ll

total 24

-rwxr-xr-x. 1 mysql mysql 7747 Jun 13 07:45 binlog2sql.py

-rwxr-xr-x. 1 mysql mysql 11581 Jun 13 07:45 binlog2sql_util.py

-rw-r--r--. 1 mysql mysql 92 Jun 13 07:45 __init__.py

drwxr-xr-x. 2 mysql mysql 44 Jun 13 07:50 __pycache__

2.开始备份库下的表的操作

2.1 查看刚才数据库csdn下的操作

[root@localhost binlog2sql]# python3 binlog2sql.py -h 192.168.0.112 -P3306 -uroot -p123 -d csdn -t t1 --start-file='mysql-bin.000001'

USE b'csdn';

create database csdn;

USE b'csdn';

create table t1 (id int);

INSERT INTO `csdn`.`t1`(`id`) VALUES (1); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (2); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (3); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (4); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (5); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (6); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (7); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (8); #start 609 end 807 time 2020-09-25 02:21:21

UPDATE `csdn`.`t1` SET `id`=10 WHERE `id`=1 LIMIT 1; #start 917 end 1095 time 2020-09-25 02:21:39

DELETE FROM `csdn`.`t1` WHERE `id`=3 LIMIT 1; #start 917 end 1183 time 2020-09-25 02:21:48

2.2备份数据库csdn下的操作

[root@localhost binlog2sql]# python3 binlog2sql.py -h 192.168.0.112 -P3306 -uroot -p123 -d csdn -t t1 --start-file='mysql-bin.000001' >/test/binlog2sql.sql

2.3 查看刚才备份的sql文件

[root@localhost binlog2sql]# cat /test/binlog2sql.sql

USE b'csdn';

create database csdn;

USE b'csdn';

create table t1 (id int);

INSERT INTO `csdn`.`t1`(`id`) VALUES (1); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (2); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (3); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (4); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (5); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (6); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (7); #start 609 end 807 time 2020-09-25 02:21:21

INSERT INTO `csdn`.`t1`(`id`) VALUES (8); #start 609 end 807 time 2020-09-25 02:21:21

UPDATE `csdn`.`t1` SET `id`=10 WHERE `id`=1 LIMIT 1; #start 917 end 1095 time 2020-09-25 02:21:39

DELETE FROM `csdn`.`t1` WHERE `id`=3 LIMIT 1; #start 917 end 1183 time 2020-09-25 02:21:48

3.单独查看删除语句

[root@localhost binlog2sql]# python3 binlog2sql.py -h 192.168.0.112 -P3306 -uroot -p123 -d csdn -t t1 --start-file='mysql-bin.000001' --sql-type=delete

USE b'csdn';

create database csdn;

USE b'csdn';

create table t1 (id int);

DELETE FROM `csdn`.`t1` WHERE `id`=3 LIMIT 1; #start 917 end 1183 time 2020-09-25 02:21:48

4.把删除语句反转保存到sql文件中,并且查看

[root@localhost binlog2sql]# python3 binlog2sql.py -h 192.168.0.112 -P3306 -uroot -p123 -d csdn -t t1 --start-file='mysql-bin.000001' --sql-type=delete --start-position=917 --stop-position=1183 -B >/test/roll.sql

[root@localhost binlog2sql]# cat /test/roll.sql

INSERT INTO `csdn`.`t1`(`id`) VALUES (3); #start 917 end 1183 time 2020-09-25 02:21:48

5.进入MySQL,恢复被删除的数据

mysql> source /test/roll.sql

Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;

+------+

| id |

+------+

| 10 |

| 2 |

| 4 |

| 5 |

| 6 |

| 7 |

| 8 |

| 3 |

+------+

8 rows in set (0.00 sec)

总结

到此这篇关于mysql8.0.20配合binlog2sql的配置和简单备份恢复的步骤详解的文章就介绍到这了,更多相关mysql8.0.20 binlog2sql配置和备份恢复内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

mysql8.0导入备份_mysql8.0.20配合binlog2sql的配置和简单备份恢复的步骤详解相关推荐

  1. mysql 8.0 导入文件_MySQL8.0实验-从本地文件导入数据

    先使用以下代码创建一个表: 1 mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),2 species VARCHAR(20 ...

  2. mysql8.0.11 安装顺序_mysql 8.0.11 安装步骤详解

    本文为大家分享了mysql 8.0.11 安装步骤,供大家参考,具体内容如下 第一步:下载安装包 MYSQL官方下载地址:官方下载 这里第一项是在线安装,第二项是离线包安装,我选择的是第二项(不用管你 ...

  3. vue中如何调用ios摄像头_vue2.0调用摄像头步骤详解

    这次给大家带来vue2.0调用摄像头步骤详解,使用vue2.0调用摄像头的注意事项有哪些,下面就是实战案例,一起来看一下. 可以在github 上下载demo链接 vue组件代码 import {Ex ...

  4. pandas dataframe缺失值(np.nan)处理:识别缺失情况、删除、0值填补、均值填补、中位数填补、加缺失标签、插值填充详解及实例

    pandas dataframe缺失值(np.nan)处理:识别缺失情况.删除.0值填补.均值填补.中位数填补.加缺失标签.插值填充详解及实例 isnull().natna().isna().fill ...

  5. SAP UI5 初学者教程之二十六 - OData 服务配合 Mock 服务器的使用步骤详解试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  6. mysql8.0日期类型_mysql8.0.19基础数据类型详解

    mysql基础数据类型 mysql常用数据类型概览 ![1036857-20170801181433755-146301178](D:\笔记\mysql\复习\1036857-201708011814 ...

  7. mysql8.0.12插件_MySQL8.0.12 安装及配置

    MySQL8.0.12 安装及配置 发布时间:2018-08-07 10:39, 浏览次数:274 , 标签: MySQL 一.安装 1.从网上下载MySQL8.0.12版本,下载地址:https:/ ...

  8. mysql-8.0.12语法_mysql-8.0.12 (免安装版) 安装详解

    mysql-8.0.12 (解压版) 安装详解 错误解决 第一步:mysql-8.0.12 (解压版) 下载地址:https://www.mysql.com/downloads/ 第二步:配置初始化m ...

  9. mysql安装教程8.0.21安装_mysql8.0.21安装教程图文详解

    1.下载 下载链接 点击download,这里可能需要登录甲骨文的账号,登录一下即可 2.解压 下载好会得到一个安装包 把它解压到一个能找到的目录下即可,我的是这样(my.ini文件你们应该没有) 3 ...

最新文章

  1. 个人知识管理的10个误区
  2. linux 中断程序设计,Linux中断编程
  3. Python 字符串按固定长度拆分
  4. springMVC 不扫描 controller 中的方法
  5. 理解Promise规范
  6. python创建一个元组、输出元组下标为1、3、5的元素_【Python 1-9】Python手把手教程之——元组和元组的使用技巧...
  7. 深入理解Windows消息循环
  8. tar包在linux下 java安装
  9. myeclipse 创建 maven项目的时候出现:invalid project description 解决方法
  10. 《Java语言程序设计》(基础篇原书第10版)第五章复习题答案
  11. 计算机win键是哪里,键盘Win键在哪里
  12. The serializable class Myplayer does not declare a static final serialVersionUID field of type long
  13. 2019 ICPC 上海站网络赛 K.Peekaboo (圆上整点)
  14. Plant Com:定量检测宿主微生物组的HA-QAP技术
  15. 谷歌浏览器的开源代码(M84版本)
  16. Msc.Marc安装和使用过程中遇到证书错误——处理办法
  17. 判断一个字符串中是否包含另一个字符串
  18. [STM32] Mac开发STM32之Makefile
  19. netstat 命令详解及实现原理
  20. 异构图神经网络(1)Heterogenous Graph Attention Networks

热门文章

  1. 计算机启动需输入两次密码,为什么我的电脑要2次启动才能启动我电脑设置了启动密码后就一定要2 爱问知识人...
  2. html漂亮的表格模板+背景_教育与课程主题响应式网站着陆页模板
  3. zookeeper 负载均衡 概念笔记
  4. [算法题] Search in Rotated Sorted Array
  5. Ubuntu+Win7+Samba实现文件共享
  6. 引擎设计跟踪(九.6) 地形最近更新
  7. 【jQuery】学习整理(一) 认识jQuery
  8. 澳门大学物联网设计方法研究获“973”立项
  9. Quartz.NET作业调度框架详解
  10. 模型压缩 | 无需精雕细琢,随机剪枝足矣!(ICLR 2022)