当前位置: 首页 > 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


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

相关文章:

  • OpenTiny 体验官实操活动 | 快速体验 TinyVue 组件库的智能化交互能力
  • SQL Server 中 GO 的作用
  • 深入剖析 CVE-2021-3560 与 CVE-2021-4034:原理、区别与联系
  • Zemax光学设计二次成像
  • Web基础关键_003_CSS(一)
  • Dockerfile——AI教你学Docker
  • 创建一个简单入门SpringBoot3项目
  • 桌面小屏幕实战课程:DesktopScreen 13 HTTP SERVER
  • HTTPS hostname wrong: should be <xxx>错误解决
  • Chrome浏览器访问https提示“您的连接不是私密连接”问题解决方案
  • 通信无BUG,ethernet ip转profinet网关,汽车焊接设备通信有心机
  • Windows的xshell连接VW里的centos系统里的mysql失败解决方法
  • algorithm ——————》双指针(移动0 复写0 快乐数 装水问题 以及数组中找几个数和为指定的元组)
  • 智能助手(利用GPT搭建智能系统)
  • 数据库内连接的几种方式及注意事项
  • 【数据结构】B树的介绍及其实现C++
  • C#系统学习第二章——第一个C#程序
  • 小型软件开发的三重境界:从混沌编码到结构化设计
  • C#中 Winform如何实现跨页面调用
  • 智能体Manus和实在Agent的区别