当前位置:   article > 正文

mysql两主两从+两主、互为主从实现_mysql 做双主互备,互为主从

mysql 做双主互备,互为主从

docker环境下MySQL如何实现两主两从、互为主从

1、准备

本地虚拟机网络192.168.136.150
数据库:mariadb最新版lastest

mysql服务器端口定位关系
mysql_master1192.168.136.150.3311主节点1主:master2; 从:slave1
mysql_master2192.168.136.150.3321主节点2主:master1; 从:slave2
mysql_slave1192.168.136.150.3312从节点1主:master1; 从:null
mysql_slave2192.168.136.150.3322从节点2主:master2; 从:null

起环境命令:
docker run -p 3311:3306 --name mysql_m1
-v /docker/mysql_m1/conf:/etc/mysql/conf.d
-v /docker/mysql_m1/logs:/logs
-v /docker/mysql_m1/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root -d mariadb

2、服务配置

mysql_master1配置
中conf中my.cnf配置文件

[mysqld]
# 服务器唯一标识
server-id=1
# 二进制日志文件名
log-bin=mysql-bin
# 互为主从需要加入这一行
log-slave-updates

#可不加
# 需要备份的数据库,多个数据库用 , 分隔
binlog-do-db=piumnl
# 需要复制的数据库,多个数据库用 , 分隔
replicate-do-db=piumnl
# 中继日志文件名
relay_log=mysqld-relay-bin
# 手动启动同步服务,避免突然宕机导致的数据日志不同步
skip-slave-start=ON
# 禁用符号链接,防止安全风险,可不加
symbolic-links=0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

mysql_master2配置
中conf中my.cnf配置文件

[mysqld]
server-id=2
log-bin=mysql-bin
log-slave-updates
  • 1
  • 2
  • 3
  • 4

mysql_slave1配置
中conf中my.cnf配置文件

[mysqld]
server-id=3
  • 1
  • 2

mysql_slave2配置
中conf中my.cnf配置文件

[mysqld]
server-id=4
  • 1
  • 2

3、MySQL中配置

mysql_master1 & mysql_master2 都要创建备份用户:

USE mysql;
CREATE USER 'repl'@'%' IDENTIFIED BY 'root';   # 创建一个账户
GRANT REPLICATION SLAVE ON *.*  TO  'repl'@'%'; # 授予该账户对任意数据库任意表的主从备份权限
flush privileges;									#更新权限
SELECT USER, HOST FROM mysql.user;				#查询用户权限情况
  • 1
  • 2
  • 3
  • 4
  • 5

能看到出现repl账户即创建成功
在这里插入图片描述
开启从服务|开启备份
mysql_master1

#模板为
change master to master_host=<master_hostname>, 
master_user=<repl_username>, 
master_port=<master_port>, 
master_password=<repl_password>, 
master_log_file='mysql-log.000003', 
master_log_pos=154;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

根据在主服务上查询的信息填写
通过SHOW MASTER STATUS; 命令获取
比如:
在这里插入图片描述
需要对mysql_master2开启,MASTER_PORT为3312

CHANGE MASTER TO
MASTER_HOST='192.168.136.150', MASTER_PORT=3312,
MASTER_USER="repl",MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",MASTER_LOG_POS=516;

START SLAVE										#启动从服务
STOP SLAVE										#停止从服务
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

查看结果

show slave status;
# 查看最重要的两项,两个都必须为 Yes ,有一个为 No 都要去查看错误日志文件,看看什么地方存在问题
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/1019352
推荐阅读
相关标签
  

闽ICP备14008679号