Mysql双主双从搭建步骤

背景:
需要搭建Mycat商用环境,使用4台虚拟机操练一下,最终的目标是:

Mysql双主双从搭建步骤_第1张图片

服务器情况:

机器IP

机器名

安装组件

192.168.239.144

douzi9

Master1 mycat1

192.168.239.145

douzi10

Slave1

192.168.239.146

douzi11

Master2 mycat2

192.168.239.147

douzi12

Slave2

四台服务器安装mysql参考:

https://blog.csdn.net/qq_16116549/article/details/104106070

一主一从请参考:

https://blog.csdn.net/qq_16116549/article/details/104418150

正文:

1.书接一主一从上文,删除主数据库中建立的testdb;

2.M1服务器douzi9 的mysql配置, douzi add config start 和douzi add config end之间替换为下方配置

[mysqld]
# douzi add config start

## 启用二进制日志

log-bin=mysql-bin

## 主服务器唯一id

server-id=1

## 设置不要复制的数据库(可配多个)

binlog-ignore-db=mysql

## 设置需要复制的数据库(可配多个)

binlog-do-db=testdb

## 设置logbin格式 (STATEMENT、ROW、MIXED)

binlog_format=STATEMENT

 

## 在作为从数据库时,也要更新二进制文件

log-slave-updates

## 表示自增长时每次递增的量,指自增字段的起始值,默认为1,范围是 1-65535

auto-increment-increment =2

## 表示自增长字段从哪个值开始,范围1-65535

auto-increment-offset =1

# douzi add config end

3.M2服务器douzi11 的mysql配置, douzi add config start 和douzi add config end之间替换为下方配置

[mysqld]
# douzi add config start

## 启用二进制日志

log-bin=mysql-bin

## 主服务器唯一id

server-id=3

## 设置不要复制的数据库(可配多个)

binlog-ignore-db=mysql

## 设置需要复制的数据库(可配多个,多行配置)

binlog-do-db=testdb

## 设置logbin格式 (STATEMENT、ROW、MIXED)

binlog_format=STATEMENT

 

## 在作为从数据库时,也要更新二进制文件

log-slave-updates

## 表示自增长时每次递增的量,指自增字段的起始值,默认为1,范围是 1-65535

auto-increment-increment =2

## 表示自增长字段从哪个值开始,范围1-65535

auto-increment-offset =1

# douzi add config end

4.S1服务器douzi10 的mysql配置

[mysqld]

# douzi add config start

## 主服务器唯一id

server-id=2

## 启动中继日志

relay-log=mysql-relay

# douzi add config end

5.S2服务器douzi12 的mysql配置

[mysqld]

# douzi add config start

## 主服务器唯一id

server-id=4

## 启动中继日志

relay-log=mysql-relay

# douzi add config end

6.重启所有mysql服务器,并查看状态:

systemctl restart mysqld

systemctl status mysqld

7.M1、M2主机上建立账户并授权从机:

访问主机mysql服务器:mysql -uroot -p123456

执行授权sql:grant replication slave on *.* to 'slave'@'%' identified by '123456';

        注:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

       执行 
        set global validate_password_policy=0;
        set global validate_password_length=1; 即可

8.停止从机S1、S2复制服务:stop slave;

9.重置主机M1、M2:reset master;

Mysql双主双从搭建步骤_第2张图片

10.搭建双主从复制M1->S1 M2->S2,与单个主从相同;

  • S1命令:

change master to master_host='192.168.239.144', master_port=3306,master_user='slave', master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;

  • S2命令:

change master to master_host='192.168.239.146', master_port=3306,master_user='slave', master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;

11.启动从机S1、S2复制服务:start slave; 查看从机状态(列展现):show slave status\G;

12.同时M1也要复制M2,M2也要复制M1,互相作为对方的从机:

  • M1命令:

change master to master_host='192.168.239.146', master_port=3306,master_user='slave', master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;

  • M2命令:

change master to master_host='192.168.239.144', master_port=3306,master_user='slave', master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;

13.启动从机M1、M2复制服务:start slave; 查看从机状态(列展现):show slave status\G;

14.验证双主双从复制是否成功:M1或M2执行

主库执行: Create database testdb; 查看从库是否有testdb;

CREATE TABLE `mytbl` (

  `id` int(11) NOT NULL,

  `name` varchar(255) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Mysql双主双从搭建步骤_第3张图片

Mysql双主双从搭建步骤_第4张图片 Mysql双主双从搭建步骤_第5张图片

 

你可能感兴趣的:(技术贴)