当前位置: 首页 > news >正文

[202209]mysql8.0 双主集群搭建 亲测可用

[202209]mysql8.0 双主集群搭建 亲测可用

我两个 mysql 都是用 Docker 部署,所以配置文件和你们会有些不同,但问题不大,可以自己上网找对应的路径。

  • 主机信息
    • A:192.168.1.10
    • B:192.168.1.11

第一步:配置文件

主机:/etc/my.cnf

  • 我们要改的只有两个地方:
  • 其他地方直接复制就可以了。
    • server-id:每台服务器都要有一个不同的ID
    • auto_increment_offset:同上

改完需要重启Mysq改完需要重启Mysq改完需要重启Mysq

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED

# ------------------集群--------------
# 每台服务器ID为集群内唯一, 例如1,2,3
# A
server-id = 1
# B
#server-id = 2

# 开启binlog,数据同步的关键
log-bin=on

# 步进值auto_imcrement 。一般有n台主mysql就填n
auto_increment_increment=2

# 自增起始位置,一般填写第n台主机mysql.此时为第一台主
auto_increment_offset=1
#auto_increment_offset=2

#忽略mysql库,可以不填写
#binlog-ignore=mysql

#忽略information_schema库,一般不填写
#binlog-ignore=infomation_schema

#指定同步的数据库,不填写则默认所有的数据库
#replicate-do-db=test_db

# 从库连接
default_authentication_plugin=mysql_native_password

# 将复制事件写入binlog,一台服务器既做主库又做从库此选项必须要开启
log-slave-updates = true 

# 主从复制模式开启
gtid_mode=on
enforce_gtid_consistency=1

第二步:创建用户

单独创建一个给 主从 用的用户,毕竟你总不能用root吧?安全隐患太大了

直接复制就可以了,如果报错就分开执行,不要一起执行

CREATE USER share@'%' IDENTIFIED BY '123456';

#分配权限
GRANT REPLICATION SLAVE ON *.* to share@'%';

第三步:配置节点

我们先在两边都执行一次:reset master;

然后在执行:

  • 这里我们要改的只有三个地方
    • SOURCE_HOST:对方主机IP
    • SOURCE_USER:用户
    • SOURCE_PASSWORD:密码

A节点

change master to SOURCE_HOST='192.168.1.11',SOURCE_PORT=3306,SOURCE_USER='share',SOURCE_PASSWORD='123456',SOURCE_AUTO_POSITION=1;
START REPLICA;

B节点

change master to SOURCE_HOST='192.168.1.10',SOURCE_PORT=3306,SOURCE_USER='share',SOURCE_PASSWORD='123456',SOURCE_AUTO_POSITION=1;
START REPLICA;

最后

我们先在两边都执行一次:reset master;

查看是否成功

SHOW REPLICA STATUS;

找到:Last_IO_Error字段

这样就算成功了。

error connecting to master 'share@192.168.1.10:3306' - retry-time: 60 retries: 1 message: Can't connect to MySQL server on '192.168.1.10:3306' (111)

踩坑:

  • 重置节点
    • 如果提示:The server is not configured as slave; fix in config file or with CHANGE MASTER TO 。 时执行
reset master;
  • UUID相同
    • Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; thes

查看文件 mysql/data/auto.cnf,就是他的UUID和其他相同了,随便改个数字和字母就可以了。

相关文章:

  • C++后台开发学习路线(已多人拿下腾讯后台开发)
  • 中值滤波器 median filter
  • 基于ssm的图书(借阅)管理系统
  • linux内核中的I2C
  • 【Java面试】如何系统准备秋招?献上一份超硬核Java学习路线图+学习资源,拿走不谢!!
  • 面试分析:你懂不懂threadlocal?
  • ESP8266-Arduino编程实例-CCS811数字气体传感器驱动
  • 【C++编程语言】之类和对象---对象初始化和清除
  • Task05|joyfulpandas|变形
  • 【SpringBoot】yaml配置文件语法—总结回顾
  • jenkins 发布项目到k8s tomcat
  • 基于ssm(非maven)学生考勤管理系统
  • C++11新特性(一)
  • WebRTC源码之摄像头视频数据采集源码分析
  • stm32f4xx-PWM输出
  • ES6指北【2】—— 箭头函数
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • C++类的相互关联
  • Git初体验
  • Mac转Windows的拯救指南
  • Octave 入门
  • Odoo domain写法及运用
  • PHP 小技巧
  • PHP那些事儿
  • python学习笔记 - ThreadLocal
  • Redis 懒删除(lazy free)简史
  • session共享问题解决方案
  • windows下mongoDB的环境配置
  • 从输入URL到页面加载发生了什么
  • 分类模型——Logistics Regression
  • 分享几个不错的工具
  • 跨域
  • 浅谈web中前端模板引擎的使用
  • 区块链共识机制优缺点对比都是什么
  • 如何使用 JavaScript 解析 URL
  • 算法系列——算法入门之递归分而治之思想的实现
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • (1)SpringCloud 整合Python
  • (1)STL算法之遍历容器
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (4)(4.6) Triducer
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (笔试题)分解质因式
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)换源+apt-get基础配置+搜狗拼音
  • (三)Honghu Cloud云架构一定时调度平台
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)母版页和相对路径
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core引入性能分析引导优化
  • .NET Standard 的管理策略
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .net中的Queue和Stack