docker集群部署主从mysql

搭建一个mysql集群,1主2从,使用docker容器

一、创建docker的mysql镜像

下次补上,因为现在很多网络不能直接pull,操作下次补上。

二、创建mysql容器

创建容器1

docker run -it -d --name mysql_1 -p 7001:3306 --net mynet --ip 172.18.0.2 -m 400m -v /root/mysql_1/data:/var/lib/mysql -v /root/mysql_1/config:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=abc123456 -e TZ=Asia/Shanghai --privileged=true mysql:5.7 --lower_case_table_names=1

执行成功后,

查看:docker ps -a

说明部署成功了,先暂停这个容器:docker stop mysql_1

接着在/root/mysql_1/config/下创建my.cnf

[mysqld]
character_set_server=utf8
server_id=1
log_bin=mysql_bin
relay_log=relay_bin
log-slave-updates=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

重新启动mysql_1容器:docker start mysql_1

进入容器,docker exec -it mysql_1 bash

添加数据库账号与设置权限

mysql -uroot -pabc123456

添加一个账号为sync,密码为:abc123456的有同步数据权限的账号,这个步骤参考以下方法。如果能用navicat连接上这个数据库,也可以用工具直接创建这个账号与赋权限,个人测试的直接授所有权限。


mysql 创建用户
方法一:使用CREATE USER语句来创建用户。以下是一个示例:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';该语句将在MySQL数据库中创建一个名为'username'的用户,并为该用户设置密码为'password'。用户只能从本地主机连接到数据库。方法二:使用GRANT语句创建用户。以下是一个示例:GRANT ALL PRIVILEGES ON . TO 'username'@'localhost' IDENTIFIED BY 'password';该语句将为名为'username'的用户授予对所有数据库和表的全部权限,并设置密码为'password'。用户只能从本地主机连接到数据库。注意:在实际生产环境中,应根据需要为用户分配适当的权限,而不是赋予全部权限。方法三:使用INSERT INTO语句将用户信息插入到mysql.user表中。以下是一个示例:INSERT INTO mysql.user (User, Host, Password) VALUES ('username', 'localhost', PASSWORD('password'));该语句将在mysql.user表中插入一条记录,包含用户名为'username'、主机为'localhost'和使用PASSWORD函数加密的密码。用户只能从本地主机连接到数据库。需要注意的是,为了使新用户生效,必须使用FLUSH PRIVILEGES语句刷新MySQL的权限缓存:FLUSH PRIVILEGES;

创建容器2

docker run -it -d --name mysql_2 -p 7002:3306 --net mynet --ip 172.18.0.3 -m 400m -v /root/mysql_2/data:/var/lib/mysql -v /root/mysql_2/config:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=abc123456 -e TZ=Asia/Shanghai --privileged=true mysql:5.7 --lower_case_table_names=1

执行成功后,

查看:docker ps -a

说明部署成功了,先暂停这个容器:docker stop mysql_2

接着在/root/mysql_2/config/下创建my.cnf

[mysqld]
character_set_server=utf8
server_id=2
log_bin=mysql_bin
relay_log=relay_bin
read-only=1
#log-slave-updates=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

重新启动mysql_2容器:docker start mysql_2

使用navicat连接,并设置

stop slave;change master to master_host='172.18.0.2',master_port=3306,master_user='sync',master_password='abc123456'start slave;show slave status;

一条条执行,前面都是执行结果为OK

最后一条的显示为:这就说明从库设置成功!

创建容器3

docker run -it -d --name mysql_2 -p 7003:3306 --net mynet --ip 172.18.0.4 -m 400m -v /root/mysql_3/data:/var/lib/mysql -v /root/mysql_3/config:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=abc123456 -e TZ=Asia/Shanghai --privileged=true mysql:5.7 --lower_case_table_names=1

执行成功后,

查看:docker ps -a

说明部署成功了,先暂停这个容器:docker stop mysql_3

接着在/root/mysql_3/config/下创建my.cnf

[mysqld]
character_set_server=utf8
server_id=3
log_bin=mysql_bin
relay_log=relay_bin
read-only=1
#log-slave-updates=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

重新启动mysql_3容器:docker start mysql_3

使用navicat连接,并设置

stop slave;change master to master_host='172.18.0.2',master_port=3306,master_user='sync',master_password='abc123456'start slave;show slave status;

一条条执行,前面都是执行结果为OK

最后一条的显示为:这就说明从库设置成功!

在主库上创建一个数据库与数据表

在从库上自动添加了这个库与表

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

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

相关文章

【单链表】03 设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux算法题上机准备 😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言 题目 设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。 算法…

《昇思25天学习打卡营第10天|使用静态图加速》

文章目录 今日所学:一、背景介绍1. 动态图模式2. 静态图模式 三、静态图模式的使用场景四、静态图模式开启方式1. 基于装饰器的开启方式2. 基于context的开启方式 总结: 今日所学: 在上一集中,我学习了保存与加载的方法&#xff…

昇思25天学习打卡营第6天|简单的深度学习模型实战 - 函数式自动微分

自动微分(Automatic Differentiation)是什么?微分是函数在某一处的导数值,自动微分就是使用计算机程序自动求解函数在某一处的导数值。自动微分可用于计算神经网络反向传播的梯度大小,是机器学习训练中不可或缺的一步。 这些公式难免让人头大…

论文浅尝 | 从最少到最多的提示可在大型语言模型中实现复杂的推理

笔记整理:王泽元,浙江大学博士 链接:https://openreview.net/forum?idWZH7099tgfM 1. 动机 尽管深度学习已经取得了巨大的成功,但它与人类智慧仍然存在一些明显差距。这些差距包括以下几个方面:1)学习新任…

SQL Server查看所有的数据库、所有的表 以及表的描述

文章目录 -- 查看所有的数据库 select name from sys.databases order by name;-- 查看所有的表 use [你的数据库名]; -- select * from sys.objects order by type; -- select * from sys.objects where type u; -- select object_id,name from sys.objects where type u; s…

【代码大全2 选读】看看骨灰级高手消灭 if-else 逻辑的瑞士军刀长啥样

文章目录 1 【写在前面】2 【心法】这把瑞士军刀长啥样3 【示例1】确定某个月份的天数(Days-in-Month Example)4 【示例2】确定保险费率(Insurance Rates Example)5 【示例3】灵活的消息格式(Flexible-Message-Format …

NFC风险高?不要被误导

在我们日常生活中,经常会听到NFC这个词,尤其是在智能手机、银行卡和公共交通卡等场景中。NFC,全称近场通信(Near Field Communication),就像是一位随时待命的便捷小助手,但它是否安全可靠呢&…

14-27 剑和诗人 1 – 请称呼我AI工程师

​​​​​ 仅初创企业的收入就超过 10 亿美元,随着 Gen AI 的早期成功迹象,每家有远见的科技公司都在竞相将 Gen AI 功能融入其产品、客户支持机器人和营销中。作为一种技术,AI 正处于与 90 年代末互联网相似的阶段,甚至完全相同…

【前端】上传和下载zip文件,有进度条(el-progess)

文章目录 上传下载进度条 场景:要上传一个zip,调用接口,然后下载一个zip。调用接口的接口响应要显示在进度条中。 上传 上传用的是input原生控件,在页面中隐藏。accept"application/zip"限制只能上传zip。 点击button…

【unity实战】Unity中使用A*寻路+有限状态机制作一个俯视角敌人AI

最终效果 文章目录 最终效果前言A*寻路插件介绍下载导入AI插件生成寻路网格节点的类型障碍物寻路测试A*只打印报错信息 代码控制寻路动画配置敌人状态机各种状态脚本效果完结 前言 前面做过有限状态机制作一个敌人AI:【unity实战】在Unity中使用有限状态机制作一个…

vxe-table合并行数据;element-plus的el-table动态合并行

文章目录 一、vxe-table合并行数据1.代码 二、使用element-plus的el-table动态合并行2.代码 注意&#xff1a;const fields 是要合并的字段 一、vxe-table合并行数据 1.代码 <vxe-tableborderresizableheight"500":scroll-y"{enabled: false}":span-m…

信创-办公软件应用工程师认证

随着国家对信息技术自主创新的战略重视程度不断提升&#xff0c;信创产业迎来前所未有的发展机遇。未来几年内&#xff0c;信创产业将呈现市场规模扩大、技术创新加速、产业链完善和国产化替代加速的趋势。信创人才培养对于推动产业发展具有重要意义。应加强高校教育、建立人才…

【信息学奥赛】CSP-J/S初赛07 排序算法及其他算法在初赛中的考察

本专栏&#x1f449;CSP-J/S初赛内容主要讲解信息学奥赛的初赛内容&#xff0c;包含计算机基础、初赛常考的C程序和算法以及数据结构&#xff0c;并收集了近年真题以作参考。 如果你想参加信息学奥赛&#xff0c;但之前没有太多C基础&#xff0c;请点击&#x1f449;专栏&#…

全面掌握如何应对DDoS攻击,一文带你轻松保护网站安全

一、引言 在当今互联网时代&#xff0c;DDoS&#xff08;Distributed Denial of Service&#xff0c;分布式拒绝服务&#xff09;攻击已经成为威胁网站安全的主要手段之一。这种攻击通过大量恶意流量占用服务器资源&#xff0c;导致网站无法正常访问。如何有效应对DDoS攻击&am…

C++|海康摄像头实时预览时设置音量大小

使用海康API设置音量的函数是&#xff1a;NET_DVR_OpenSound。 在实际代码中我遇到了以下问题&#xff1a; 1&#xff1a;调用NET_DVR_OpenSound接口一直返回失败&#xff0c;错误是调用顺序出错。 2&#xff1a;音量设置不成功。 对于以上两种问题&#xff0c;我相信很多人…

实现Java应用的数据加密与解密技术

实现Java应用的数据加密与解密技术 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 数据加密与解密的重要性 数据安全是当今互联网应用开发中的重要问题之…

FineBI在线学习资源-数据处理

FineBI在线学习资源汇总&#xff1a; 学习资源 视频课程 帮助文档 问答 数据处理学习文档&#xff1a; 相关资料&#xff1a; 故事背景概述-https://help.fanruan.com/finebi6.0/doc-view-1789.html 基础表处理-https://help.fanruan.com/finebi6.0/doc-view-1791.html …

六西格玛绿带培训如何告别“走过场”?落地生根

近年来&#xff0c;六西格玛绿带培训已经成为了众多企业提升管理水平和员工技能的重要途径。然而&#xff0c;不少企业在实施六西格玛绿带培训时&#xff0c;往往陷入形式主义的泥潭&#xff0c;导致培训效果大打折扣。那么&#xff0c;如何避免六西格玛绿带培训变成“走过场”…

【重磅】万能模型-直接能换迪丽热巴的模型

万能模型&#xff0c;顾名思义&#xff0c;不用重新训练src&#xff0c;直接可以用的模型&#xff0c;适应大部分原视频脸 模型用法和正常模型一样&#xff0c;但可以跳过训练阶段&#xff01;直接到合成阶段使用该模型 本模型没有做Xseg&#xff0c;对遮挡过多的画面不会自动适…

LiteFlow介绍、原理解析以及应用场景

LiteFlow介绍 LiteFlow是一个由Baidu开源的轻量级、快速、稳定且可编排的组件式规则引擎框架。它专注于逻辑驱动流程编排&#xff0c;通过组件化方式快速构建和执行业务流程&#xff0c;有效解耦复杂业务逻辑。LiteFlow的设计基于工作台模式&#xff0c;其中每个业务组件相当于…