centos7 互为主从配置(转)

本文绝大部分内容都是转自别人的

转自:http://blog.51cto.com/jiangjianlong/1981994

一、测试环境

操作系统版本:Red Hat Enterprise Linux Server release 6.5 (Santiago)(我的系统是centos7)

Mysql版本:MySQL-5.6.38-1.el6.x86_64.rpm-bundle.tar(我的是5.6.37)

node01:192.168.10.71

node02:192.168.10.72

VIP:192.168.10.70

二、配置node01为主、node02为从的主从同步

1、node01和node02分别安装好Mysql 5.6.38,安装方法请参考上一篇博文《MySQL 5.6.38在RedHat 6.5上通过RPM包安装》

2、在node01和node02分别编辑/etc/my.cnf,配置如下:

[mysqld]

log-bin=mysql-bin

server-id = 1

[mysqld_safe]

log-error = /var/log/mysqld.log

pid-file = /var/run/mysqld/mysqld.pid

replicate-do-db = all

3、重启mysql服务

[root@node01 ~]# service mysql restart

[root@node02 ~]# service mysql restart

4、登录node01的mysql,创建用于同步的账户repl,密码为123456,并查询master状态,记下file名称和posttion数值

mysql> GRANT REPLICATION SLAVE ON *.* to 'repl'@'%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

先在从服务器中访问主服务器的数据库,mysql -u用户名 -h ip -p 密码,如果访问成功,则继续,否则要寻找不能访问的原因,可能是防火墙给挡住了。

mysql> show master status;

861ce21efcab668e198c869c519b558c.png

5、登录node02的mysql,执行以下语句开启从服务器,注意master_host要填写node01的IP

mysql> change master to master_host='192.168.10.71',master_user='repl',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=318;

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

1
2
3
4
5
6
7
命令参数解释:
master_host='192.168.10.71' ## Master 的 IP 地址
master_user='repl' ## 用于同步数据的用户(在 Master中授权的用户)
master_password='123456' ## 同步数据用户的密码
master_log_file='mysql-bin.000001' ##指定 Slave 从哪个日志文
件开始读复制数据(可在 Master 上使用 show master status 查看到日志文件名)
master_log_pos=429  ## 从哪个 POSITION 号开始读

mysql> start slave;

Query OK, 0 rows affected (0.03 sec)

6、查询从服务的状态,状态正常

5d73613426a065162d40691ea633ae3c.png

7、在node01创建一个数据库、一个表并插入一行数据,用于测试node02是否能同步过去

mysql> create database mysql_long;

Query OK, 1 row affected (0.00 sec)

mysql> use mysql_long;

Database changed

mysql> create table test(id int(3),name char(5));

Query OK, 0 rows affected (0.13 sec)

mysql> insert into test values (001,'jlong');

Query OK, 1 row affected (0.01 sec)

96706addc3684365ab116e4367f26d4f.png

8、登录到node02的Mysql,同步正常

0648ce6f610307f25c3735364ec1b9d6.png

三、配置node02为主、node01为从的主从同步

1、登录node02的mysql,创建用于同步的账户repl,密码为123456,并查询master状态,记下file名称和posttion数值,并查询master状态

mysql> GRANT REPLICATION SLAVE ON *.* to 'repl'@'%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.10 sec)

2ccd74beec248c31114882b518d34d95.png

2、登录node01的mysql,执行以下语句开启从服务器,注意这里master_host要填写node02的IP

mysql> change master to master_host='192.168.10.72',master_user='repl',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=318;

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

mysql> start slave;

Query OK, 0 rows affected (0.03 sec)

3、查询从服务的状态,状态正常

e00bd2e54a3046d63fa7ac76b0889f55.png

4、在node02创建一个数据库、一个表并插入一行数据,用于测试node01是否能同步过去

mysql> create database mysql_long2;

Query OK, 1 row affected (0.00 sec)

mysql> use mysql_long2;

Database changed

mysql> create table test2(id int(3),name char(10));

Query OK, 0 rows affected (0.71 sec)

mysql> insert into test2 values (001,'jianlong');

Query OK, 1 row affected (0.00 sec

64ea39fae7345681a7e2ce1f414fe90e.png

5、node01同步正常。

6190935c9e4ae273051f021a7ce91f68.png

这样互为主从就配置好了,两台机既是对方的Master,又是对方的Slave,无论在哪一台机上数据发生了变化,另一台都能及时进行同步数据,

原文地址:https://www.cnblogs.com/xiaochongzi/p/8296669.html