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

Ubuntu18.04/Mysql 5.7 建立主备模式Mysql集群

一、数据库的安装

详见https://www.jianshu.com/p/5073177eedf2
本文实验环境为阿里云的两台ubuntu18.04服务器:
master ip: 172.26.138.7
slave ip: 172.26.0.209

二、修改Master的配置(# 的行是我后增加的部分):

编辑 /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
server-id       =1 # 必须保证集群中不同即可
log_bin         =/var/log/mysql/mysql-bin.log  #指定主备之间交换的日志文件,同时也是打开服务器master模式的开关
binlog_format   =mixed #日志的格式,包括mixed,statement,mixed
binlog_do_db    =test10 #共享的数据库名称
binlog_ignore_db        = mysql #不共享的数据库名称
lc-messages-dir = /usr/share/mysqlskip-external-locking#bind-address           = 127.0.0.1 #此行保证master可以被集群访问

重启:systemctl restart mysql

三、进一步配置master

  1. 分配复制用的帐号:
mysql> create user repl;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.26.138.7' IDENTIFIED BY '123';
mysql> flush privileges;
  1. 查看master的状态,记录下相关信息,以供slave使用
mysql> show master status \G;
*************************** 1. row ***************************File: mysql-bin.000003Position: 2525Binlog_Do_DB: test10Binlog_Ignore_DB: mysql
Executed_Gtid_Set: 
1 row in set (0.00 sec)

记录下: File: mysql-bin.000003和Position: 2525(可以理解为同步点)

到此:master配置完毕。

四、修改slave的配置(# 是我加入的行):

vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
server-id       = 2 #slave的server-id
log_bin                 = mysql-bin #应该可以省略
replicate_do_db         =test10 #选择本地数据库(可以与master的Binlog_Do_DB不同,但必须在slave中已经建立好)
replicate_ignore_db     =mysql #忽略的数据库
lc-messages-dir = /usr/share/mysql
skip-external-locking

重启:systemctl restart mysql

五、启用slave

在slave服务器上登录,并输入:

mysql> change master to master_host='172.26.138.7',master_port=3306,master_user='repl',master_password='123',master_log_file='mysql-bin.000003',master_log_pos=2525;
mysql> start slave
mysql> show slave status \G;

注: 当需要重新同步master时,可以首先stop slave,然后重复以上步骤

六、测试:

此时,可以在master上执行各种写入操作,然后在slave在查看即可。

最后编辑于:2025-06-15 09:56:12


喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.lqws.cn/news/539191.html

相关文章:

  • 华为云Flexus+DeepSeek征文|Dify平台开发搭建口腔牙科24小时在线问诊系统(AI知识库系统)
  • C++学习笔记
  • 16.3 Docker生产级部署:网络与存储高效配置实战,保障99.95%可用性
  • 387. 字符串中的第一个唯一字符
  • uni-app uts 插件 android 端 科大讯飞离线语音合成最新版
  • 修改表中满足特定条件的字段值
  • elementUI轮播图组件el-carousel适配移动端大小(图片加载好后根据大小适配)
  • 抽样分布与参数估计细节
  • 如何在安卓设备上发送长视频:6 种可行的解决方案
  • GitHub Actions与AWS OIDC实现安全的ECR/ECS自动化部署
  • 从输入到路径:AI赋能的地图语义解析与可视化探索之旅
  • 远程办公与协作新趋势:从远程桌面、VDI到边缘计算,打造高效、安全的混合办公环境
  • Java底层原理:深入理解JVM内存模型与线程安全
  • 开发数字化绿色低碳园区系统:分阶段实施指南
  • 数据获取
  • word中如何保存高清图片,并保存为高质量的pdf文件(图像不失真)
  • 【Linux】基础开发工具(2)
  • 架构轻巧的kokoro 文本转语音模型
  • LeetCode 2302.统计得分小于K的子数组数目
  • Docker 入门教程(二):Docker 的基本原理
  • 大厂测开实习和小厂开发实习怎么选
  • python pandas数据清洗
  • NebulaGraph 图数据库介绍
  • 抖音图文带货和短视频带货有什么区别
  • Nginx配置文件介绍和基本使用
  • 面试150 文本左右对齐
  • 2-深度学习挖短线股-3-训练数据计算
  • mysql无法启动的数据库迁移
  • 【办公类-105-01】20250626 托小班报名表-条件格式-判断双胞胎EXCLE
  • Python 中 `for` 循环与 `while` 循环的实际应用区别:实例解析