码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2019-06-14 18:18:35      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:user   添加   主从复制   oba   base   href   mic   界面   没有   

通过MySQL主主:进行MySQL双向同步数据库HA的配置
技术图片
配置node-1
它有两种身份:
身份1: node-1的主。 身份2: node-2的从。

安装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
2019-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> 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
2019-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 主服务器上成功
技术图片

##########################################################################################################################
然后作主授权给从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

技术图片

再回来配置node-1

先测试一下从帐号登陆是否正常?
[root@node-1 ~]# mysql -u slave -p123456 -h 192.168.150.141

出现以下界面表示为成功

技术图片![]

配置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

技术图片

在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;

技术图片

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

mysql> select * from HA.T1;

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

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

标签:user   添加   主从复制   oba   base   href   mic   界面   没有   

原文地址:https://blog.51cto.com/xia1314520ting/2409061

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!