【微服务】部署mysql集群,主从复制,读写分离

两台服务器做如下操作

1.安装mysql
 docker pull mysql:5.7

2.启动以及数据挂载
mkdir /root/mysql/data /root/mysql/log /root/mysql/conf
touch my.conf //mysql的配置文件

docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/log:/var/log/mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-dp 3306:3306 \
mysql:5.7

3.启动数据库,开机自启
docker start mysql
docker update mysql --always=restart

4.修改配置文件,设置mysql为utf-8编码
[client]
default_character_set=utf8
[mysql]
default_character_set=utf8
[mysqld]
character_set_server=utf8
server_id=01   //主从服务器id要不一致
binlog-ignore-db=mysql  //此参数表示不记录指定的数据库的二进制日志。
log-bin=master-log-bin  //开启mysql的binlog日志功能,master-log-bin文件名
binlog_cache_size=1M  //binlog缓存大小
binlog_format=mixed  //binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days=7  //二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。
slave_skip_errors=1062  //忽略主键冲突报错

#MySQL主从同步中,经常遇到的三种同步错误:
#1、在master上delete一条记录,若在slave上没有这条数据,会出现报错。
#2、在master上insert一条记录,若在slave上主键值已经存在,会出现报错。
#3、在master上update一条记录,若在slave上没有这条数据,会出现报错。
#如果slave的my.cnf已经配置了slave_skip_errors参数,则可以自动跳过报错,如果没有配置该参数,则可以用以下方法解决:
#mysql> set global slave_exec_mode='idempotent'; 
#默认值是strict(严格模式),IDEMPOTENT  模式跳过主键冲突错误和更新删除行不存在错误。
#默认情况下该参数值是off,我们可以列出具体的error code,也可以选择all,mysql5.6及MySQL Cluster NDB 7.3以及后续版本增加了参数#ddl_exist_errors,该参数包含一系列error code(1007,1008,1050,1051,1054,1060,1061,1068,1094,1146)
#    一些error code代表的错误如下:
#     1007: 数据库已存在,创建数据库失败
#     1008: 数据库不存在,删除数据库失败
#     1050: 数据表已存在,创建数据表失败
#     1051: 数据表不存在,删除数据表失败
#     1054: 字段不存在,或程序文件跟数据库有冲突
#     1060: 字段重复,导致无法插入
#     1061: 重复键名
#     1068: 定义了多个主键
#     1094: 位置线程ID
#    1146: 数据表缺失,请恢复数据库
#    1053: 复制过程中主服务器宕机
#     1062: 主键冲突 Duplicate entry '%s' for key %d


5.查看是否生效
docker exec -it mysql /bin/bash
mysql -uroot -p
show variables like 'character%';
show master status;  //显示主服务器状态

+-----------------------+----------+--------------+------------------+-------------------+
| File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------------+----------+--------------+------------------+-------------------+
| master-log-bin.000001 |      617 |              | mysql            |                   |
+-----------------------+----------+--------------+------------------+-------------------+

6.创建账户给从数据库使用
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
flush privileges;

7.修改salve数据库配置
[client]
default_character_set=utf8
[mysql]
default_character_set=utf8
[mysqld]
character_set_server=utf8
server_id=02
binlog-ignore-db=mysql
log-bin=slave-log-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=relay-log-bin  //从主服务器上同步日志文件记录到本地
log_slave_updates=1 //表示slave将复制事件写进自己的二进制日志。当设置log_slave_updates时,你可以让slave扮演其它slave的master
read_only=1  //1是只读

8.重启从mysql,并连接主mysql
change master to master_host='192.168.162.201' , //主服务器ip
 master_user='slave' ,  //连接使用的用户
 master_password='123456' , //连接用户的密码
 master_port=3306 ,//主服务器端酒
 master_log_file='master-log-bin.000002'  //binlog文件位置
,master_log_pos=617  //#数据的最新位置
,master_connect_retry=30  //重连时间
,master_retry_count=3; //重连次数

9.查看从服务状态,以及开启主从模式
show slave status \G;
start slave  //开启主从模式

show slave status \G;
未开启是状态
在这里插入图片描述

开启后
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FaceChain-FACT:开源10秒写真生成,复用海量LoRa风格,基模友好型写真应用

github开源地址:https://github.com/modelscope/facechain/tree/main/facechain_adapter 魔搭创空间应用体验:魔搭社区 一、效果演示 FaceChain FACT的代码和模型目前已经在github和modelscope创空间上同步开源。FaceChain FACT具有简单的交互式界面设…

Rohm公司参展欧洲PCI盛会

​德国历史悠久的文化名城纽伦堡,即将迎来一场科技盛宴——欧洲PCI展览会。在这个为期三天的盛会中(6月11日至13日),Rohm公司将以璀璨之姿,特别聚焦宽带隙(WBG)设备的璀璨光芒。 此次&#xff0…

linux安装srs

获取srs cd /opt git clone -b 4.0release https://gitee.com/ossrs/srs.git cd srs/trunk 启动srs ./objs/srs -c conf/srs.conf ./etc/init.d/srs status 访问http://192.168.220.146:8080/出现下方图片说明安装成功 点击进入SRS控制台看到下方图片

AI视频教程下载:使用ChatGPT进行商务写作

你将学到什么? 学习如何将ChatGPT集成到你的写作过程中,并有效地将其用作商务写作的个人写作助手。 学习如何使用ChatGPT生成想法,提高你的书面沟通的结构、清晰度和连贯性。 你将学习使用ChatGPT的最佳实践,包括如何自定义其设…

【Flutter】显式动画

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月29日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…

k8s群集调度之 pod亲和 node亲和 标签指定

目录 一 调度约束 1.1K8S的 List-Watch 机制 ⭐⭐⭐⭐⭐ 1.1.1Pod 启动典型创建过程 二、调度过程 2.1Predicate(预选策略) 常见的算法 2.2priorities(优选策略)常见的算法 三、k8s将pod调度到指定node的方法 3.1指…

FPGA中的乒乓操作

为什么不直接选用一个缓存更大的FIFO而选用乒乓操作为什么乒乓操作可以实现低速处理高速数据乒乓操作适用哪些场景 一、乒乓操作结构 首先先介绍一下乒乓操作的原理,其结构如下: 输入选择单元负责将数据送到数据缓冲模块,然后输出选择单元负…

网络工程师---第四十三天

1、网络地址转换请简述DNS服务器迭代查询与递归的区别? 2、请从技术方面简述RAIDO、RAID1、RAID3、 RAID5的特点? 3、请从层次结构、部署设备和功能配置方面描述层次化的网络结构? 4、请简述IPSECVPN和AH和ESP的区别? 5、请简述ID…

用友U8 Cloud linkntb.jsp SQL注入漏洞复现(CNVD-C-2023-708748)

0x01 产品简介 用友U8 Cloud是用友推出的新一代云ERP,主要聚焦成长型、创新型企业,提供企业级云ERP整体解决方案。 0x02 漏洞概述 用友U8 Cloud linkntb.jsp 接口处存在SQL注入漏洞,未授权的攻击者可通过此漏洞获取数据库权限,从而盗取用户数据,造成用户信息泄露。 0x…

vue组件的基本使用方法

组件 【1】组件是什么? 组件就是:扩展 HTML 元素,封装可重用的代码,目的是复用例如:有一个轮播图,可以在很多页面中使用,一个轮播有js,css,html组件把js,cs…

[java基础揉碎]文件IO流

目录 文件 什么是文件 文件流​编辑 常用的文件操作 创建文件方式一 创建文件方式二 创建文件方式三 tip:为什么new file 了还有执行createNewFile?new File的时候其实是在内存中创建了文件对象, 还没有在磁盘中, 当执行createNewFile的时候才是往磁盘中写入​编辑 …

Golang 创建第一个web项目(Gin + Gorm)

1. 写这篇博客的由来: 当你想使用最快的框架创建项目的时候是不是有点束手无策? 当你想配置数据库写 SQL 甚至不知道如何写,文件夹都不知道建在哪里? 😄因为Golang 目前并没有 JAVA 那种硬性规范,但是…

基于JCEF实现网页资源性能分析

文章目录 1、需求2、实现代码3、运行效果 1、需求 在使用chrome浏览器访问页面时,浏览器自带的开发者工具可以查看页面每个资源的资源大小和加载时间。 这个功能可以让我们直接知道接口或资源的耗时情况和大小情况,如果存在性能问题,可以进…

LES物流执行系统,在离散制造行业有那些作用和价值?

离散制造企业往往面临的是多品种、小批量的非标订单生产,传统推动式物流系统已经无法应对计划变化滞后,各车间、工序之间难以衔接等情况,特别是密集劳动力的电子行业,非标产品 SKU 种类繁多,物料配送复杂,对…

Chisel入门——在windows下vscode搭建|部署Scala2.13.3开发环境|用Chisel点亮FPGA小灯

文章目录 前言一、vscode搭建scala开发环境1.1 安装Scala官方插件1.2 创建hello_world.scala文件1.3 确认java的版本(博主使用的是1.8)1.4 下载Scala Windows版本的二进制文件1.5 配置环境变量1.6 交互模式测试一下1.7 vscode运行scala 二、windows安装sbt2.1 下载sbt2.2 设置环…

mac安装Redis

官网: https://redis.io中文网: Redis中文网 安装 brew install redis 查看版本 redis-server --version 开启关闭服务 方式一(不推荐) 这种方式不太建议,因为控制台不用输出相应的日志 开启服务 brew service…

Qt项目使用pato mqtt C

一,下载pato mqtt C 源码 git 地址:https://github.com/eclipse/paho.mqtt.c.git git 地址可能下载不下来,提供我的gitee地址 gitee地址:https://gitee.com/chaojidahuaidan2021/paho.mqtt.c.git 二,编译共享库 clone下来后,将项目导入到Qt工程中,此时这是一个cmke工程…

uniapp一些问题解决

1.按钮边框如何去除? 参考博主:微信小程序按钮去不掉边框_微信小程序button去掉边框-CSDN博客文章浏览阅读1k次。最近在学uni-app,顺便自己写个小程序。左上角放了个button,可边框怎么也去不掉…原来微信小程序的按钮要去掉边框要…

辅助科技照亮道路,携手共促盲文书写技能新飞跃

在这个科技日新月异的时代,创新的力量正以前所未有的方式融入我们的日常生活,特别是对于视觉障碍群体而言,技术的每一次进步都是通往更加独立生活的桥梁。今天,让我们聚焦于一款名为“蝙蝠避障”的辅助软件,它不仅为盲…

Python数据可视化(六)

实现事件处理效果 我们借助 matplotlib 可以实现事件处理效果,例如,单击关闭画布会出现画布被关闭的文本提 示,在画布上的图形界面任意位置单击可以获得放大后的此处图形界面等。下面,我们就挑选一些 典型的事件处理案例来讲解实现…