对docker安装的mysql实现主从同步

1:分别安装mysql主,从数据库

        将主库容器名称改为mysql_master,将从库容器名称改为mysql_slave

        安装教程:docker安装mysql

2:配置主库的my.cnf挂载文件

[mysqld]
#log-bin:表示启用binlog功能,并指定二进制日志的存储目录。
log-bin=mysql-bin
#binlog_format:binlog日志格式,mysql默认采用statement,建议使用mixed。
binlog_format=mixed
#server-id:指定唯一的servr ID,主从数据库的server-id必须是不一样的数字。
server-id=1
#binlog-ignore-db:binlog日志不记录指定库的更新。
binlog-ignore-db=mysql,sys,performance_schema,information_schema
#binlog-do-db:binlog日志只记录指定库的更新。由于我们需要配置所有库的同步,故不设置该参数。
# 开启gtid
gtid_mode=ON
#enforce-gtid-consistency:强制执行GTID一致性检查。
enforce-gtid-consistency=true

3:重启主库

        docker restart mysql

4:配置从库的my.cnf挂载文件

[mysqld]
log-bin=mysql-bin
binlog_format=mixed
server-id=2
#replicate-ignore-db:不进行主从复制的数据库名。 
replicate-ignore-db=mysql,sys,performance_schema,information_schema
#log-slave-updates:记录从库更新,允许链式复制( A-B-C )。当该从库作为其他库的主库时,需要添加该参数。 
log-slave-updates
#replicate-do-db:要进行主从复制的数据库名。由于我们需要配置所有库的同步,故不设置该参数。 
#slave-skip-errors:从库同步时忽略遇到的错误。
slave-skip-errors=all
# 开启gtid
gtid_mode=ON
#enforce-gtid-consistency:强制执行GTID一致性检查。
enforce-gtid-consistency=true

5:配置基于GTID的复制

        1)进入主库,并配置授权用户

#进入docker容器
docker exec -it mysql-master /bin/bash
#登录mysql
mysql -uroot -p您的密码
#暂时禁用当前会话的二进制日志记录,防止创建用户和授予权限的操作被记录到二进制日志中,从而避免在主从    复制中重复执行这些操作。
#注意事项:这个设置只对当前会话有效,不会影响其他会话
mysql> SET SQL_LOG_BIN=0;
#创建用户
mysql> CREATE USER 用户名@'%' IDENTIFIED WITH mysql_native_password BY '密码';
#作用:授予 slaveuser 用户 REPLICATION SLAVE 权限,使其能够读取主库的二进制日志,用于复制。
#注意事项:*.* 表示所有数据库和表
mysql> grant replication slave on *.* to slaveuser@'%';
#作用:使权限更改立即生效。
#注意事项:这是一个必要的步骤,确保新创建的用户和权限立即可用。
mysql> flush privileges;
#作用:重新启用当前会话的二进制日志记录。
#注意事项:同样,这个设置只对当前会话有效。
mysql> SET SQL_LOG_BIN=1;

        2)进入从库,配置主从同步

#进入docker容器
docker exec -it mysql-master /bin/bash
#登录mysql
mysql -uroot -p您的密码
#作用:停止从库上的所有复制线程,包括 I/O 线程和 SQL 线程。
#注意事项:在进行任何配置更改之前,先停止从库复制,以避免数据不一致。
mysql> stop slave;
#作用:配置从库连接到主库的信息,包括主库的 IP 地址、端口、用户名、密码以及启用 GTID(全局事务标识符)自动定位。
#参数说明:
#MASTER_HOST: 主库的 IP 地址。
#MASTER_PORT: 主库的 MySQL 端口。
#MASTER_USER: 用于复制的用户名。
#MASTER_PASSWORD: 用于复制的密码。
#MASTER_AUTO_POSITION: 启用 GTID 自动定位,确保从库能够自动同步主库的事务。
mysql> change master to master_host='ip',master_port=port,master_user='userName',master_password='password',master_auto_position = 1;
#作用:启动从库上的所有复制线程,包括 I/O 线程和 SQL 线程。
#注意事项:确保从库能够成功连接到主库并开始复制
mysql> start slave;#如果报错可以尝试清除从服务器上的复制信息,命令:mysql> reset slave; #查看同步状态
mysql> show slave status\G;
#如果 Slave_IO_Running 和 Slave_SQL_Running 的值都是 Yes ,说明配置成功。
#如果 Slave_IO_Running 为 No ,则查看后面的 Last_IO_Error 字段,里面会有详细的出错原因。
#如果 Slave_SQL_Running 为 No ,则查看后面的 Last_SQL_Error 字段,里面会有详细的出错原因。#查看GTID是否开启
mysql> show variables like 'gtid_mode';

6:从库异常后解决方案

#进入从库
docker exec -it mysql-master /bin/bash
#登录mysql
mysql -uroot -p您的密码
#停止slave
stop slave;
#同步数据配置
#参数说明:
#MASTER_HOST: 主库的 IP 地址。
#MASTER_PORT: 主库的 MySQL 端口。
#MASTER_USER: 用于复制的用户名。
#MASTER_PASSWORD: 用于复制的密码。
#MASTER_AUTO_POSITION: 启用 GTID 自动定位,确保从库能够自动同步主库的事务。
mysql> change master to master_host='ip',master_port=port,master_user='userName',master_password='password',master_auto_position = 1;
#启动slave
start slave;

        

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

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

相关文章

如何把大模型调教成派大星?

目录 主要内容模型图实验结果如何把大模型变成派大星?chatglm3-6B 数据集准备代码运行微调结果 文章声明:非广告,仅个人体验:参考文献:https://www.aspiringcode.com/content?id17197387451937&uid291a2ae1546b48…

国土安全部发布关键基础设施安全人工智能框架

美国国土安全部 (DHS) 发布建议,概述如何在关键基础设施中安全开发和部署人工智能 (AI)。 https://www.dhs.gov/news/2024/11/14/groundbreaking-framework-safe-and-secure-deployment-ai-critical-infrastructure 关键基础设施中人工智能的角色和职责框架 https:/…

QML TableView 实例演示 + 可能遇到的一些问题(Qt_6_5_3)

一、可能遇到的一些问题 Q1:如何禁用拖动? 在TableView下加一句代码即可: interactive: false 补充:这个属性并不专属于TableView,而是一个通用属性。很多Controls下的控件都可以使用,其主要作用就是控…

C基础上机题目51_55

51.字符数组x中存有任意一串字符;请编制函数,按给定的替代关系对数组x中的所有字符进行替代,仍存入数组x的对应的位置上,最后调用函数把结果x输出。 替代关系:f(p)p*11%256 (p是数组中某一个字符的ASCII值&#xff0c…

03-微服务搭建

1、搭建分布式基本环境 分布式组件 功能 SpringCloud Alibaba - Nacos 注册中心(服务发现/注册)、配置中心(动态配置管理) SpringCloud Alibaba - Sentinel 服务容错(限流、降级、熔断) SpringCloud …

Java八股(一)

目录 1.JVM、JRE、JDK之间的关系 2.static关键字作用(通俗版) 3.面向对象、面向过程 4.私有方法 5.Java代码执行与编译 6.IOC 1.JVM、JRE、JDK之间的关系 Java一次编写到处运行,可移植性好,保证这一点的就是iava虚拟机JVM …

Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

yum install 报错: Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址,无法连接,需要替换为阿里云。 cd /etc/yum.repos.d/ 找到 CentOS-SCLo-scl.repo 和…

Vue前端开发-slot传参

slot 又称插槽,它是在子组件中为父组件提供的一个占位符,使用来表示,通过这个占位符,父组件可以向中填充任意的内容代码,这些代码将自动替换占位符的位置,从而轻松实现在父组件中控制子组件内容的需求。 作…

如何在 Ubuntu 22.04 上安装带有 Nginx 的 ELK Stack

今天我们来聊聊如何在 Ubuntu 22.04 服务器上安装 ELK Stack,并集成 Nginx 作为 Web 服务器,同时使用 Let’s Encrypt Certbot 进行 SSL 认证。ELK Stack,包括 Elasticsearch、Logstash 和 Kibana,是一套强大的工具,用…

快速理解微服务中Sentinel怎么实现限流

Sentinel是通过动态管理限流规则,根据定义的规则对请求进行限流控制。 一.实现步骤 1.定义资源:在Sentinel中,资源可以是URL、方法等,用于标识需要进行限流的请求;(在Sentinel中,需要我们去告诉Sentinel哪些…

基于单片机的智慧小区人脸识别门禁系统

本设计基于单片机的智慧小区人脸识别门禁系统。由STM32F103C8T6单片机核心板、显示模块、摄像头模块、舵机模块、按键模块和电源模块组成。可以通过摄像头模块对进入人员人脸数据进行采集,识别成功后,舵机模块动作,模拟门禁打开,门…

llama-factory 系列教程 (七),Qwen2.5-7B-Instruct 模型微调与vllm部署详细流程实战

文章目录 介绍llama-factory 安装装包下载模型 微调模型数据集训练模型 微调后的模型推理 介绍 时隔已久的 llama-factory 系列教程更新了。本篇文章是第七篇,之前的六篇,大家酌情选看即可。 因为llama-factory进行了更新,我前面几篇文章的实…

利用Docker容器技术部署发布web应用程序

Docker是什么? docker 是一个开源的应用容器引擎,可以帮助开发者打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何…

SpringCloud框架学习(第五部分:SpringCloud Alibaba入门和 nacos)

目录 十二、SpringCloud Alibaba入门简介 1. 基本介绍 2.作用 3.版本选型 十三、 SpringCloud Alibaba Nacos服务注册和配置中心 1.简介 2.各种注册中心比较 3.下载安装 4.Nacos Discovery服务注册中心 (1) 基于 Nacos 的服务提供者 &#xf…

Linux—进程概念学习-03

目录 Linux—进程学习—31.进程优先级1.1Linux中的进程优先级1.2修改进程优先级—top 2.进程的其他概念3.进程切换4.环境变量4.0环境变量的理解4.1环境变量的基本概念4.2添加环境变量—export4.3Linux中环境变量的由来4.4常见环境变量4.5和环境变量相关的命令4.6通过系统调用获…

信创改造 - TongRDS 替换 Redis

记得开放 6379 端口哦 1)首先在服务器上安装好 TongRDS 2)替换 redis 的 host,post,passwd 3)TongRDS 兼容 jedis # 例如:更改原先 redis 中对应的 host,post,passwd 改成 TongRDS…

Python 爬虫入门教程:从零构建你的第一个网络爬虫

网络爬虫是一种自动化程序,用于从网站抓取数据。Python 凭借其丰富的库和简单的语法,是构建网络爬虫的理想语言。本文将带你从零开始学习 Python 爬虫的基本知识,并实现一个简单的爬虫项目。 1. 什么是网络爬虫? 网络爬虫&#x…

从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)

本文不仅细化了每一个步骤,实现了从0到1部署Tomcat和添加servlet。还针对IDEA2024版和以前的版本在部署上的区别,做了详细介绍,尤其是add framework support部分。与此同时,针对控制台中文乱码问题,本文也给出了详细解…

书生大模型实战营第四期-入门岛-4. maas课程任务

书生大模型实战营第四期-入门岛-4. maas课程任务 任务一、模型下载 任务内容 使用Hugging Face平台、魔搭社区平台(可选)和魔乐社区平台(可选)下载文档中提到的模型(至少需要下载config.json文件、model.safetensor…

相亲交友小程序项目介绍

一、项目背景 在当今快节奏的社会生活中,人们忙于工作和事业,社交圈子相对狭窄,寻找合适的恋爱对象变得愈发困难。相亲交友作为一种传统而有效的社交方式,在现代社会依然有着巨大的需求。我们的相亲交友项目旨在为广大单身人士提…