windows docker 创建mysql主从 容器创建mysql主从

news2024/12/24 8:16:05

1. docker命令新建mysql-master,只是简单测试,没有设置映射,只是验证主从连接,需要可自行添加

docker run --restart=always --name mysql-master --privileged=true -d -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

2. 进入master容器命令,复制配置文件

#1. 进入容器
docker exec -it mysql-master /bin/bash
#2. 查看mysql在哪里,复制出来,改好在复制进去
ls
cd /etc
ls

 3. 由容器内复制到宿主机命令:

docker cp mysql-master:/etc/my.cnf D:/docker-data

4. 使用notepad++ 配置下mysql-master 的my.cnf配置文件

#binlog文件名
log-bin=mysql-bin
#忽略库
binlog-ignore-db=mysql
#同步库,不要先创建
binlog-do-db=syncdb
#binlog格式
binlog_format=STATEMENT

#需要备份的数据库名 ,需要另起一行添加,用,分割不能识别多个库 

binlog-do-db=test

#例 binlog-do-db=test2

#若涉及及同步函数或者存储过程需要配置,否则主备会产生异常不能同步  

log_bin_trust_function_creators=TRUE


# binlog日志保留的天数,清除超过10天的日志
# 防止日志文件过大,导致磁盘空间不足
expire-logs-days=10

5. windows 进入在配置文件的文件夹下,输入下面的复制命令,将原始配置文件覆盖。切记,先cd 到windows的配置文件夹下再输入命令:

docker cp my.cnf mysql-master:/etc/

#复制进入后,进入容器
docker exec -it mysql-master /bin/bash
# 
cd /etc
# 查看是否覆盖成功
cat my.cnf
# 成功退出
exit
# 重启mysql-master
docker restart mysql-master

 6. 在master中创建用户并授权

    创建一个“slave”的用户(密码:root)用来同步
    先进入master内部

docker exec -it mysql-master bash
#登录mysql
mysql -uroot -proot
#创建用户
create user 'slave'@'%' identified by 'root';
#授权
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
#mysql8需要执行额外的操作
alter user 'slave'@'%' identified with mysql_native_password by 'root';
flush privileges;

以上命令,我使用navicat 控制台输入的,一样的效果,也可以登录mysql 执行

 查看状态: 成功如下  position记得查看数字,下面命令配置会用到

#show master status;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |     1142 | syncdb       | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

master配置完毕,现在设置mysql-slave

1. 创建slave服务 并设置端口为3307

docker run --restart=always --name mysql-slave --privileged=true -d -p 3307:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

2. 同理配置my.cnf,改好配置后,复制进容器,覆盖容器的配置文件 并重启

[mysqld]
server_id=102
#中继日志名
relay_log=mysql-relay

3.重启slave

docker restart mysql-slave

4. 另外还需要验证服务之间的网络连接是否畅通,进入mysql-slave容器

# 登陆
docker exec -it mysql-slave bash

#1. 连接mysql 
mysql -uroot -p123456 -h 172.17.0.2

 连接成功示例, 如果不成功则检查网络是否配置错误,docker网络配置服务器防火墙配置阿里控制台端口配置等 再仔细检查:

 5. 继续配置mysql-slave ,navicat 登陆mysql-slave输入配置命令:

# 这个也需要看看是否需要修改 比如master_log_pos=1142 ,master_password=root密码 
change master to master_host='172.17.0.2',master_user='slave',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=1142;

6.启动slave, 在mysql-slave输入命令:

#mysql下
start slave;

7. 查看状态:

#mysql下
show slave status;

8. 测试是否成功,在master新建数据库syncdb 并建表,

从库也看到了数据

 

错误:

 

如果出现同库不能同步情况,可以试试重置,并开启:

reset slave;

start slave;

这个没用过,重置主从连接:

stop slave;
reset master;

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

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

相关文章

Linux - 第11节 - 网络入门

目录 1.计算机网络背景 1.1.网络发展 1.2.认识 "协议" 2.网络协议初识 2.1.协议分层 2.2.OSI七层模型 2.3.TCP/IP五层(或四层)模型 3.网络传输基本流程 3.1.同局域网的两台主机通信 3.2.跨网络的两台主机通信 1.计算机网络背景 1.1…

spring事务报错Transaction rolled back because it has been marked as rollback-only

之前经常报"Transaction rolled back because it has been marked as rollback-only"这个异常 字面意思是"事务回滚了,因为它被标记了必须回滚",最开始完全不懂事务的嵌套,每次出现这个错误都想知道为什么,但…

套接字类型和协议设置

创建套接字 成功返回文件描述符,失败返回-1 int socket (int __domain, int __type, int __protocol) ;__domain:套接字中使用的协议族信息 一般使用PF_INET(IPv4互联网协议族),其它协议族不常使用或尚未普及。另外&a…

算法设计与分析:大整数的加减乘除运算

目录 任务描述 相关知识 大整数的思想 大整数加法 大整数减法 大整数与整数的乘法 大整数乘法 大整数与整数的除法 n的阶乘求解思路 编程要求 测试说明 任务描述 本关任务:掌握大整数的基本思想,并运用大整数的基本运算计算出常规整数n的阶乘…

seaweedfs服务启动参数及翻译(seaweed参数、seaweed命令、weed参数、weed命令)(在单个容器同时启动master、volume、filer服务)

文章目录 weed命令翻译weed server命令翻译 weed filer命令 docker容器运行示例(docker run命令)以下是一个在单个容器启动master、volume、filer服务的示例 weed server 容器debug 版本:3.47从官方镜像docker容器里扒下来的,只扒…

【多线程】单例模式

目录 饿汉模式 懒汉模式-单线程版 懒汉模式-多线程版 懒汉模式-多线程版(改进) 单例是一种设计模式。 啥是设计模式 ? 设计模式好比象棋中的 " 棋谱 ". 红方当头炮 , 黑方马来跳 . 针对红方的一些走法 , 黑方应招的时候有一些固定的套路. 按照套路来走局势…

5.11 C高级作业

编写一个名为myfirstshell.sh的脚本,它包括以下内容。 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HOME的…

高性能网络 SIG 月度动态:长期投入得到业界认可,新增一位 virtio reviewer

高性能网络 SIG(Special Interest Group) :在云计算时代,软硬件高速发展,云原生、微服务等新的应用形态兴起,让更多的数据在进程之间流动,而网络则成为了这些数据流的载体,在整个云时…

Hive概述和安装

hive简介 Hive:由Facebook开源用于解决海量结构化日志的数据统计工具。 Hive是基于Hadoop的一个数据仓库工具,将结构化的数据文件映射为一张表,并提供类SQL(HQL)查询功能。 Hive本质:将HQL转化成MapReduce程序 (1&am…

无锁队列实现及使用场景

写在前面 在看无锁队列之前,我们先来看看看队列的操作。队列是一种非常重要的数据结构,其特性是先进先出(FIFO),符合流水线业务流程。在进程间通信、网络通信间经常采用队列做缓存,缓解数据处理压力。根据…

device_node转换成platform_device

device_node转换成platform_device 文章目录 device_node转换成platform_device转换规则主要核心函数of_default_bus_match_tablearmarm64of_platform_register_reconfig_notifier Linux内核是如何将device_node转换成platform_deviceof_platform_populate函数处理根节点下的子…

在ubuntu连接Xlight FTP Server

一 在windows上搭建服务器 http://www.xlightftpd.com/download.htm 使用英文版,使防止在ubuntu中登录中文版时,显示乱码 新建用户和用户对应的服务器目录 如下所示,默认只有读权限 全都勾选 勾选完毕后的效果 在目录中放一个文件&#…

10款常用的原型设计工具,包含一键生成原型工具

原型图是产品设计师日常工作的“常客”,原型图软件也扮演着产品设计师的“武器”角色。 许多新产品设计师不知道如何选择原型图软件。本文盘点了10个优秀的原型图软件,让我们来看看。 1.即时设计 即时设计是一款免费的在线 UI 设计工具,无…

【Java数据结构】排序

排序 插入排序希尔排序选择排序堆排序冒泡排序快速排序序列的分割Hoare法挖坑法快慢指针法 优化1 - 三数取中优化2- 数据规模小时的插入 归并排序 插入排序 直接插入排序是一种简单的插入排序法,其基本思想是: 把待排序的记录按其关键码值的大小逐个插…

Jetson Orin环境安装Opencv+Cuda以及vscode环境配置

文章目录 一:Opencv Cuda源码的下载、编译1.卸载jetson上自带的无cuda加速Opencv2.安装Opencv依赖库3.下载 OpenCV 和 opencv_contrib 源码4.编译安装 OpenCV、opencv_contrib 二:Opencv 的环境配置三:Vscode 中的Opencv环境配置四&#xff…

系统分析师---系统建模相关高频考试知识点

系统规划---成本效益分析 评价信息系统经济效益常用的方法主要有成本效益分析法,投入产出分析法和价值工程方法。盈亏平衡法常用于销售定价; 可行性分析 系统规划是信息系统生命周期的第一个阶段,其任务是对企业的环境、目标以及现有系统的状况进行初步调查,根据企业目标…

张正友相机标定原理

相机标定 记录1.1 张正友相机标定相关 参考 记录 最小二乘法:A^T A x 0 奇异值分解的办法求解最小二乘法 因为可以假设标定板平面在世界坐标系Z0的平面上, 1.1 张正友相机标定相关 单目相机标定实现–张正友标定法(包含具体的实现以及C代码&#xff0…

《花雕学AI》ChatGPT Shortcut Chrome 扩展:让生产力和创造力加倍的 ChatGPT 快捷指令库

你是否想要与一个智能的对话伙伴聊天,或者让它帮你完成各种任务,如写作、编程、摘要、翻译等?如果是的话,你可能会对 ChatGPT 感兴趣。ChatGPT 是一个基于 GPT-3.5 的对话式人工智能,可以与用户进行自然、流畅、有趣的…

文件看不见了,内存还占着容量的找回教程

U盘文件突然不见了但还占用内存空间的解决方法 如果文件看不见了但内存占用仍然存在,可能是因为以下原因: 文件被隐藏。某些操作系统允许隐藏文件,这些文件只能在文件浏览器中被找到。 文件被损坏。如果文件损坏,它可能不会显示在…

Python图形化编程开源项目拼码狮PinMaShi

开源仓库 #项目地址 https://github.com/supercoderlee/pinmashi https://gitee.com/supercoderlee/pinmashiPinMaShi采用electron开发,图形化拖拽式编程有效降低编程难度,对Python编程的初学者非常友好;积木式编程加快Python程序的开发&…