通过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主要的软件包。 这样部署起来更方便
下载并解压安装
[[email protected] ~]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
[[email protected] ~]# tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
[[email protected] ~]# yum -y ×××tall ./mysql*.rpm
启动mysql 服务
[[email protected] ~]# systemctl start mysqld
在MySQL的配置文件/etc/my.cnf 中关闭密码强度审计插件,并重启MySQl服务。
[[email protected] ~]# vim /etc/my.cnf
#修改MySQL的配置文件,在[myqld]标签处末行添加以下项:
validate-password=OFF #不使用密码强度审计插件
重启mysql 服务
[[email protected] ~]# systemctl restart mysqld
获取临时密码
[[email protected] ~]# grep ‘password‘ /var/log/mysqld.log
2019-06-14T06:14:33.154120Z 1 [Note] A temporary password is generated for [email protected]: fhcJfqoV>3fN
使用临时密码登陆
#使用临时密码登录MySQl,注意临时密码要引号
[[email protected] ~]# mysql -u root -p‘fhcJfqoV>3fN‘
修改root 密码
mysql> set password for [email protected] = 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主配置文件
[[email protected] ~]# vim /etc/my.cnf
server-id = 1
log-bin=mysql-bin-master
binlog-do-db=HA
binlog-ignore-db=mysql #避免同步MySQL用户 相关配置
重启服务
[[email protected] ~]# systemctl restart mysqld
登陆mysql
[[email protected] ~]# mysql -u root -p123456
mysql> show master status;
授权
mysql> grant replication slave on . to [email protected]‘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 [email protected]‘192.168.150.%‘ identified by ‘123456‘;
mysql> flush privileges; #记得刷新授权表
方法二:
关闭密码强度审计,在my.cnf添加validate-password=off
mysql> grant replication slave on . to [email protected]‘192.168.150.%‘ identified by ‘123456‘;
mysql> flush privileges; #记得刷新授权表
#########################################################################################################################
配置node-2服务器
安装MySQL 5.7版本
[[email protected] ~]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
[[email protected] ~]# tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
[[email protected] ~]# yum -y ×××tall ./mysql*.rpm
启动mysql
[[email protected] ~]# systemctl start mysqld
在MySQL的配置文件/etc/my.cnf 中关闭密码强度审计插件,并重启MySQl服务
[[email protected] ~]# vim /etc/my.cnf
validate-password=OFF #不使用密码强度审计插件
重启mysql
[[email protected] ~]# systemctl restart mysqld
获取临时密码
[[email protected] ~]# grep ‘password‘ /var/log/mysqld.log
2019-06-14T06:31:48.683960Z 1 [Note] A temporary password is generated for [email protected]: w/Sf8qeZw%)K
#使用临时密码登录MySQl,注意临时密码要引号
[[email protected] ~]# mysql -u root -p‘w/Sf8qeZw%)K‘
修改root密码
mysql> set password for [email protected] = 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从服务配置文件
[[email protected] ~]# vim /etc/my.cnf
server-id = 2
log-bin=mysql-bin-slave
binlog-do-db=HA
binlog-ignore-db=mysql
[[email protected] ~]# systemctl restart mysqld
先测试一下从帐号登陆是否正常
[[email protected] ~]# mysql -u slave -p123456 -h 192.168.150.140
出现以下界面表示从服务器登陆到192.168.150.140 主服务器上成功
##########################################################################################################################
然后作主授权给从node-1
[[email protected] ~]# mysql -uroot -p123456
mysql> grant replication slave on . to [email protected]‘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 [email protected]‘192.168.1.%‘ identified by ‘123456‘;
mysql> flush privileges; #记得刷新授权表
方法二:
关闭密码强度审计,在my.cnf添加validate-password=off
mysql> grant replication slave on . to [email protected]‘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
先测试一下从帐号登陆是否正常?
[[email protected] ~]# 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架构没有什么好处,他往往给我们产生一种实现了负载均衡的错觉
原文地址:https://blog.51cto.com/xia1314520ting/2409060