mysql双向主从复制配置_部署MySQL主主双向主从复制 M-M

通过MySQL主主:进行MySQL双向同步数据库HA的配置

部署MySQL主主双向主从复制 M-M

配置node-1

它有两种身份:

身份1: node-1的主。 身份2: node-2的从。

两台主库之间做高可用,可以采用keepalived等方案(使用VIP对外提供服务);

46d1ef546e37044820f7dc781d040a16.png

安装MySQL 5.7版本

上传mysql-5.7.tar.gz到Linux主机上,并解压:

注:mysql-5.7.tar.gz 中包括了安装mysql5.7主要的软件包。 这样部署起来更方便

下载并解压安装

[root@node-1 ~]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

[root@node-1 ~]# tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

[root@node-1 ~]# yum -y ×××tall ./mysql*.rpm

启动mysql 服务

[root@node-1 ~]# systemctl start mysqld

在MySQL的配置文件/etc/my.cnf 中关闭密码强度审计插件,并重启MySQl服务。

[root@node-1 ~]# vim /etc/my.cnf

#修改MySQL的配置文件,在[myqld]标签处末行添加以下项:

validate-password=OFF #不使用密码强度审计插件

重启mysql 服务

[root@node-1 ~]# systemctl restart mysqld

获取临时密码

[root@node-1 ~]# grep ‘password’ /var/log/mysqld.log

2020-06-14T06:14:33.154120Z 1 [Note] A temporary password is generated for root@localhost: fhcJfqoV>3fN

使用临时密码登陆

#使用临时密码登录MySQl,注意临时密码要引号

[root@node-1 ~]# mysql -u root -p’fhcJfqoV>3fN’

修改root 密码

mysql> set password for root@localhost = password(‘123456’);

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

修改node-1主配置文件

[root@node-1 ~]# vim /etc/my.cnf

server-id = 1

log-bin=mysql-bin-master

binlog-do-db=HA

binlog-ignore-db=mysql #避免同步MySQL用户 相关配置

重启服务

[root@node-1 ~]# systemctl restart mysqld

登陆mysql

[root@node-1 ~]# mysql -u root -p123456

mysql> show master status;

部署MySQL主主双向主从复制 M-M

授权

mysql> grant replication slave on . to slave@‘192.168.150.%’ identified by ‘123456’;

Query OK, 0 rows affected, 1 warning (0.00 sec)

#########################################################################################################################

注意:如果不符合密码要求修改如下(5.7版本)

方法一:

mysql> set global validate_password_policy=0; #定义复杂度

mysql> set global validate_password_length=1; #定义长度 默认是8

mysql> grant replication slave on . to slave@‘192.168.150.%’ identified by ‘123456’;

mysql> flush privileges; #记得刷新授权表

方法二:

关闭密码强度审计,在my.cnf添加validate-password=off

mysql> grant replication slave on . to slave@‘192.168.150.%’ identified by ‘123456’;

mysql> flush privileges; #记得刷新授权表

#########################################################################################################################

配置node-2服务器

安装MySQL 5.7版本

[root@node-2 ~]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

[root@node-2 ~]# tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

[root@node-2 ~]# yum -y ×××tall ./mysql*.rpm

启动mysql

[root@node-2 ~]# systemctl start mysqld

在MySQL的配置文件/etc/my.cnf 中关闭密码强度审计插件,并重启MySQl服务

[root@node-2 ~]# vim /etc/my.cnf

validate-password=OFF #不使用密码强度审计插件

重启mysql

[root@node-2 ~]# systemctl restart mysqld

获取临时密码

[root@node-2 ~]# grep ‘password’ /var/log/mysqld.log

2020-06-14T06:31:48.683960Z 1 [Note] A temporary password is generated for root@localhost: w/Sf8qeZw%)K

#使用临时密码登录MySQl,注意临时密码要引号

[root@node-2 ~]# mysql -u root -p’w/Sf8qeZw%)K’

修改root密码

mysql> set password for root@localhost = password(‘123456’);

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

编辑MySQL从服务配置文件

[root@node-2 ~]# vim /etc/my.cnf

server-id = 2

log-bin=mysql-bin-slave

binlog-do-db=HA

binlog-ignore-db=mysql

[root@node-2 ~]# systemctl restart mysqld

先测试一下从帐号登陆是否正常

[root@node-2 ~]# mysql -u slave -p123456 -h 192.168.150.140

出现以下界面表示从服务器登陆到192.168.150.140 主服务器上成功

部署MySQL主主双向主从复制 M-M

##########################################################################################################################

然后作主授权给从node-1

[root@node-2 ~]# mysql -uroot -p123456

mysql> grant replication slave on . to slave@‘192.168.150.140’ identified by ‘123456’;

Query OK, 0 rows affected, 1 warning (0.00 sec)

#########################################################################################################################

注意:如果不符合密码要求修改如下(5.7版本)

方法一:

mysql> set global validate_password_policy=0; #定义复杂度

mysql> set global validate_password_length=1; #定义长度 默认是8

mysql> grant replication slave on . to slave@‘192.168.1.%’ identified by ‘123456’;

mysql> flush privileges; #记得刷新授权表

方法二:

关闭密码强度审计,在my.cnf添加validate-password=off

mysql> grant replication slave on . to slave@‘192.168.1.63’ identified by ‘123456’;

mysql> flush privileges; #记得刷新授权表

#########################################################################################################################

以下配置在node-2 上做授权和配置

mysql> stop slave;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to master_host=‘192.168.150.140’,master_user=‘slave’,master_password=‘123456’;

Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G

部署MySQL主主双向主从复制 M-M

再回来配置node-1

先测试一下从帐号登陆是否正常?

[root@node-1 ~]# mysql -u slave -p123456 -h 192.168.150.141

出现以下界面表示为成功

部署MySQL主主双向主从复制 M-M![]

配置node-1 数据库

mysql> change master to master_host=‘192.168.150.141’,master_user=‘slave’,master_password=‘123456’;

Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

在node-1上查看状态

mysql> show slave status\G

部署MySQL主主双向主从复制 M-M

在node-1插入数据在node-2上查看

mysql> create database HA;

Query OK, 1 row affected (0.00 sec)

mysql> use HA;

Database changed

mysql> create table T1(id int,name varchar(20));

Query OK, 0 rows affected (0.01 sec)

mysql> ×××ert into T1 values(1,‘hello’);

Query OK, 1 row affected (0.02 sec)

node-2 查看数据

mysql> select * from HA.T1;

部署MySQL主主双向主从复制 M-M

在node-2上插入数据,node-1上查看

mysql> select * from HA.T1;

部署MySQL主主双向主从复制 M-M

注意:这种M-M架构没有什么好处,他往往给我们产生一种实现了负载均衡的错觉

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值