当前位置: 首页> 健康> 母婴 > 制作小程序的步骤_互联网网站备案流程_网络推广技巧_网络营销发展方案策划书

制作小程序的步骤_互联网网站备案流程_网络推广技巧_网络营销发展方案策划书

时间:2025/7/11 17:41:37来源:https://blog.csdn.net/weixin_40331132/article/details/144002953 浏览次数:0次
制作小程序的步骤_互联网网站备案流程_网络推广技巧_网络营销发展方案策划书

  • 背景
  • 何谓“先死后生”
  • 本文使用技术
  • 1、实施流程图
  • 2、实施
    • 2.1、数据库备份
    • 2.2、搭建Mysql的Master-Slave
      • 2.2.1、准备工作
      • 2.2.2、开始部署
      • 2.2.3、账号配置
      • 2.2.4、slave 同步配置
      • 2.2.5、验证
    • 2.3、Master做数据恢复
  • 结语

背景

计划对已有大量数据的mysql库的主从搭建,使用了常规先做数据同步,完成首次同步后,再进行主从配置,已失败告终;
过程出现了Error_code:1593、Error_code: 1062、Error_code:1033等主从start启动异常,有的code可以解决,有些code反复出现。耗费大量时间在研究解决问题;
于是思考,是不是方向错了,重新梳理流程,想出一个方案 “先死后生”,理论可以跳过这些问题的出现,觉得可行性很高,实施后,很快就成功了,方案与实施分享如下

何谓“先死后生”

备份后源数据库的数据,弄死源数据库,配置一个全新的主从,将备份的数据恢复到全新主上。

本文使用技术

mysql、docker
本文通篇是用例 docker 容器部署数据库,如果是主机部署数据库,学习思想即可,不需要看查实施过程。

1、实施流程图

在这里插入图片描述

2、实施

2.1、数据库备份

步骤一、进入mysql数据库容器在宿主机运行命令进行入mysql容器docker exec -it [容器id] /bin/bash

在这里插入图片描述

步骤二、备份数据库按数据库唯度备份,一个库备份一份sqlmysqldump -u root -p dbname > dbname_backup.sql运行完成这条命令会提示输入root的密码

在这里插入图片描述

输入密码后,数据多的话,需要耐心待待,数据量大的情况生成备份sql文档是需要一些时间的

上图中生成的autoplat_backup.sql 这个数据库sql文档,如下图
在这里插入图片描述

步骤三、从容器中将sql文拷贝出来
退出容器,什么命令?   exit
docker ps 找到mysql容器
然后使用下面命令copy到当前目录下
docker cp [容器id]:/[sql文件路径] ./

在这里插入图片描述

有多个数据库就执行多次备份,方式多种多样,可以将多个sql起tar打包再docker cp出来也行
备份操作行告一段落

2.2、搭建Mysql的Master-Slave

2.2.1、准备工作

先准备三个文件
一个docker compose的mysql编排文件, 主从两个mysql的 my.cnf配置文件
如果不会docker compose的请先刷docker compose部署容器的文档:
【暂略】1、编排文件mysql.yaml(主从都用这个部署)
version: '3'
services:mysql:restart: alwaysimage: mysql:5.7.38container_name: mysql-master   # master 、slavevolumes:- /data/apps/mysql/mydir:/mydir- /data/apps/mysql/datadir:/var/lib/mysql- /data/apps/mysql/conf/my.cnf:/etc/my.cnf- /data/apps/mysql/source:/docker-entrypoint-initdb.denvironment:- "MYSQL_ROOT_PASSWORD=qwer1234"- "MYSQL_DATABASE=testdb"- "TZ=Asia/Shanghai"ports:- 3306:3306
2、master my.cnf
#master节点的配置
[mysqld]
server-id=1    #设置服务id,需全局唯一  
log-bin=/var/lib/mysql/mysql-bin  #加入binlog配置,供从库读取  #binlog-do-db =test
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=performance_scheme
binlog-ignore-db=information_scheme
binlog_format=row
3、slave my.cnf
slave节点的配置
[mysqld]
server-id=2    #设置服务id,需全局唯一  
log-bin=/var/lib/mysql/mysql-bin  #加入binlog配置,供从库读取  #binlog-do-db =test
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=performance_scheme
binlog-ignore-db=information_scheme
binlog_format=row

2.2.2、开始部署

  • 1、配置my.cnf

    在主从上按照compose的my.cnf 目标创建一个目录

mkdir -p /data/apps/mysql/conf/
然后将my.cnf文档放到这个目录,注意主从对应放,别放反了
  • 2、运行容器

    在master服务器上将mysql_master.yaml(这个里面内容与slave的内容一样,只是yaml名称不一样)放到某个目录下,进入到这个目录,运行命令
    docker compose -f mysql_master.yaml up -d
    如下图,运行成功
    在这里插入图片描述
    在slave服务器上将mysql.yaml放到某个目录下,进入到这个目录,运行命令
    docker compose -f mysql.yaml up -d
    如下图,运行成功
    在这里插入图片描述

2.2.3、账号配置

master 创建同步账号
# 创建一个账号,%为任意ip能访问,可以指定ip,在%号添加IP即可,多IP,以逗号确认
create user 'slave'@'%' identified by "qwer1234";#给所有库与表的所有权限
GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%';#配置成功
FLUSH PRIVILEGES;

在这里插入图片描述

2.2.4、slave 同步配置

slave配置同步账号
stop slave;CHANGE MASTER TO MASTER_HOST = '172.17.0.2', MASTER_USER = 'slave', MASTER_PASSWORD = 'qwer1234', MASTER_PORT = 3306, MASTER_RETRY_COUNT = 0, MASTER_HEARTBEAT_PERIOD = 10000;start slave;

2.2.5、验证

在master中建一个库一个表,检查slave中是否也同步有了这个表
在这里插入图片描述
在这里插入图片描述

2.3、Master做数据恢复

1、建恢复库
库名称需要与备份时的一样
响应2.1 步骤二的备份,需要在master上建一个autoplat库

在这里插入图片描述

2、导致备份sql文件
使用docker cp 将autoplat_backup.sql文件导致master mysql容器
docker cp autoplat_backup.sql [容器id]:/

在这里插入图片描述
进入到master的容器

docker exec -it [容器id] /bin/bash
#运行恢复命令,会弹出mysql root账号的密码确认,输入密码,回归
mysql -u root -p autoplat < autoplat_backup.sql
#恢复需要一会,数据越多,越久,需要耐心

在这里插入图片描述

3、进入到master检查 autoplat数据
可见数据已经恢复

在这里插入图片描述

4、进入slave机器看数据同步
可见已经同步

在这里插入图片描述

结语

过程很艰辛,但成功的喜悦让嘴解始终压不住
关键字:制作小程序的步骤_互联网网站备案流程_网络推广技巧_网络营销发展方案策划书

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: