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/mysql

skip-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.000003
         Position: 2525
     Binlog_Do_DB: test10
 Binlog_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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武昌库里写JAVA

您的鼓励将是我前进的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值