我遇到的问题

我先后在BAT三大云服务器商购买了学生机,配置如下

  • 百度云2核/4G
  • 阿里云1核/2G
  • 腾讯云1核/2G

我的解决方案

由于我不知道百度云的续费规则,导致买了2核/4G的服务器之后以为像阿里和腾讯的一样可以原价续费,就把我的个人博客相关的东西都部署在了百度云上面。然后我就想着快发工资了,看看怎么续费百度云,结果发现这款学生机只有一个月的使用时间,所以,我不得不另寻他法。在确定了阿里云和腾讯云是支持符合学生身份期限内可以原价续费之后,我决定把博客迁移到这两台机器上。为了能防止其中一个突然到期,来不及迁移,或者说为了避免再次迁移的麻烦,我决定在阿里云和腾讯云上各自部署一个mysql,做主从。

我预期的架构

graph TB
subgraph 客户
客户-->浏览器
end
subgraph 阿里云
浏览器-->nginx
nginx-->博客实例1
博客实例1-->主MySQL
博客实例1-->本地文件系统1
end
subgraph 腾讯云
主MySQL-->从MySQL
nginx-->博客实例2
博客实例2-->主MySQL
博客实例2-->本地文件系统2(挂载本地文件系统1)
end

其中两个主机共享一个保存博客数据的文件,通过nfs挂载的方式共享同一文件夹,访问时通过nginx做负载均衡。

# 服务端客户端都执行
yum install rpc-bind
yum install nfs-utils
# 服务端
vim /etc/exports
/root/.halo (rw,no_root_squash)
# 客户端
mount -t nfs 101.132.174.XX:/root/.halo /root/.halo

然后我发现打好的博客jar包里会在数据库中存储ip信息,导致两个博客打开的内容都指向一个ip,从而产生错误,无法完成这个架构。又懒得从新修改打包等等,故而放弃了这个架构。

最终采用的架构

graph TB
subgraph 客户
客户-->浏览器
end
subgraph 阿里云
浏览器-->博客实例
博客实例-->主MySQL
博客实例-->本地文件系统
end
subgraph 腾讯云
主MySQL-->从MySQL
end

打包/docker/mysql/data下的数据复制并解压到腾讯云和阿里云的/docker/mysql/data下

阿里云主my.cnf

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
log-bin=mysql-bin # 开启binlog
binlog-format=ROW # 选择ROW模式
server_id=1
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

腾讯云从my.cnf

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
log-bin=mysql-bin # 开启binlog
binlog-format=ROW # 选择ROW模式
server_id=2 # server_id不要重复
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

在主上查询当前mysql状态:

show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB Executed_Gtid_Set
mysql-bin.000004 154

进入从容器中登录mysql:

CHANGE MASTER TO MASTER_HOST='101.132.174.XX',MASTER_USER='root',MASTER_PASSWORD='XXX',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=154;
start slave;
show slave status\G;



至此,完成了我的博客系统迁移工作。

遇到的问题

  • mysql uuid 重复,进入其中一个数据库,删除掉auto.cnf再重启mysql就行了。
  • 我用的mysql是docker挂载的方式,具体如何在docker中跑mysql和挂载文件,在我的另一篇文章里有详细描述。点此跳转

记一次MySQL(5.7版本)数据库的主从同步和备份的更多相关文章

  1. InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync replicaiton)的功能 MySQL 5.6支持了crash safe功能

    InnoSQL HA Suite的实现原理与配置说明  InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync repl ...

  2. mysql数据库配置主从同步

    MySQL主从同步的作用 .可以作为一种备份机制,相当于热备份 .可以用来做读写分离,均衡数据库负载 MySQL主从同步的步骤 一.准备操作 .主从数据库版本一致,建议版本5.5以上 .主从数据库数据 ...

  3. MySQL数据库的主从同步

    什么要进行数据库的主从同步? 防止单点故障造成的数据丢失 主从复制的原理 MySQL从数据库开启I/O线程,向主服务器发送请求数据同步(获取二进制日志) MySQL数据库开启I/O线程回应从数据库 从 ...

  4. mysql数据库的主从同步,实现读写分离 g

    https://blog.csdn.net/qq_15092079/article/details/81672920 前言 1 分别在两台centos 7系统上安装mysql 5.7 2 master ...

  5. MySQL数据库的主从同步复制配置

    一.主从同步机制原理 MYSQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态), ...

  6. mysql数据库的主从同步,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器来处理如此多的数据库连接操作,数据库必然会崩溃,特别 ...

  7. Mysql安装多版本数据库

    1.下载对应版本压缩包 2.解压缩文件 3.到解压缩文件,添加my.ini文件,修改相关的配置,如端口,文件路径等 # For advice on how to change settings ple ...

  8. Docker搭建mysql:5.7版本数据库

    搭建MySQL: 1.启动测试mysql,拷贝容器内配置文件到宿主机 mkdr -P /server/docker/mysql/{data,conf} docker run -e MYSQL_ROOT ...

  9. MySQL数据库的主从同步实现及应用

    >>主从同步机制及应用 读写分离(Read/Write Splitting)让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),从数据库处理SELECT查询操作 ...

随机推荐

  1. 201871030102_崔红梅 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程2. 掌握Github协作开发程序的操作方法.3.阅读<现代软 ...

  2. Warm_up(HCTF_2018)

    Warm up 考察知识点: 文件包含漏洞 代码审计 解题步骤 首先我们进来看到了一个滑稽的表情,没啥别的东西,先看看源码 源码中发现有注释 source.php 我们访问source.php,得到代 ...

  3. k8s在线和离线批量修改镜像地址的两种方式

    背景介绍 有时往k8s集群里部署一堆服务的时候,需要拷贝一堆yaml文件,当然还有其他方式部署,例如通过建立一个一个的流水线等方式,但是这太慢了,虽然是一劳永逸,但是如果说仅仅是部署一次那就可太费劲了 ...

  4. Vue CLI 是如何实现的 -- 终端命令行工具篇

    Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供了终端命令行工具.零配置脚手架.插件体系.图形化管理界面等.本文暂且只分析项目初始化部分,也就是终端命令行工具的实现. 0. 用法 ...

  5. java面试一日一题:讲下在什么情况下会发生类加载

    问题:请讲下在什么情况下会发生类加载? 分析:该问题主要考察对java中类加载的知识,什么是类加载,为什么会发生类加载,什么情况下发生类加载? 回答要点: 主要从以下几点去考虑 1.什么是类加载: 2 ...

  6. .NET 中的 Worker Service 入门介绍

    翻译自 Steve Gordon 2020年3月30日的文章 <WHAT ARE .NET WORKER SERVICES?> [1] 随着 .NET Core 3.0 的发布,ASP.N ...

  7. hdu4717 三分(散点的移动)

    题意:      给你一些点,这些点有各自的初始位置,移动速度和方向,问你什么时候任意两点中最长的距离最小,求时刻和此时的距离.. 思路:      感觉题目很赞,一开始想不到三分,因为么有办法证明他 ...

  8. 对c语言回调函数的理解

    对于回调函数,可以简单的理解为一种特别的函数调用方法,我们可以对比一下回调函数与普通函数在调用方法上的区别. 1. 普通函数调用 一般为实现方在其函数体执行过程中直接调用. 代码示例: #includ ...

  9. android中Stub Proxy答疑

    在上篇添加账户源码解析的博文中,我们发现功能是由AccountManager的mService成员来实现.而mService其实是AccountManagerService,如果对android系统有 ...

  10. hdu4940 有上下界的无源可行流判断

    题意:       给你一个强连通图,然后问你是否可以找到任意满足条件的集合S,S是非空集合,T是S的补集,满足sum(D[i ,j]) <= sum(D[j,i] + B[j,i]) i属于S ...