一、環(huán)境準備:
| Ip地址 | 主機名 | 角色 | 數(shù)據(jù)管理員密碼 | 公共配置 |
|---|---|---|---|---|
| 192.168.88.50 | Host50 | Master服務器 | 123qqq…A | 關閉防火墻 禁用selinux |
| 192.168.88.51 | Host51 | Slave服務器 | 123qqq…A | 關閉防火墻 禁用selinux |
二、配置流程:
1、50主機配置Master
2、51主機配置Master
3、50主機配置Slave
4、51主機配置Slave
第一步:50主機配置Master
- 修改配置文件my.cnf
[root@host50 ~]# vim /etc/my.cnf
[mysqld]
server_id=50 # 指定server_id
log_bin=master50 # 定義日志名
:wq
- 重啟服務生效配置
[root@host50 ~]# systemctl restart mysqld
- 用戶授權
# 進入mysql服務
[root@host50 ~]# mysql -uroot -p123qqq...A
# 創(chuàng)建用戶并授權
mysql> grant replication slave on *.*
-> to repluser@"%" identified by "123qqq…A";
Query OK, 0 rows affected, 1 warning (0.00 sec)
- 查看master信息,目的是查看File和Position的值
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| master50.000001 | 154 | | | |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
第二步:51主機配置Master
- 修改配置文件my.cnf
[root@host51 ~]# vim /etc/my.cnf
[mysqld]
server_id=51 # 指定server_id
log_bin=master51 # 定義日志名
:wq
- 重啟服務生效配置
[root@host51 ~]# systemctl restart mysqld
- 用戶授權
# 進入mysql服務
[root@host51 ~]# mysql -uroot -p123qqq...A
# 創(chuàng)建用戶并授權
mysql> grant replication slave on *.*
-> to repluser@"%" identified by "123qqq…A";
Query OK, 0 rows affected, 1 warning (0.00 sec)
- 查看master信息,目的是查看File和Position的值
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| master51.000001 | 154 | | | |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
第三步:50主機配置Slave
- 進入mysql服務,切記要保持主從數(shù)據(jù)庫數(shù)據(jù)一致
[root@host50 ~]# mysql -uroot -p123qqq...A
- 指定主服務器信息(指定51為主服務器)
mysql> change master to
-> master_host="192.168.88.51", # 主服務器Ip地址
-> master_user="repluser" , # 主服務器添加用戶名
-> master_password="123qqq...A", # 用戶密碼
-> master_log_file="master51.000001" , # 主服務器binlog日志名
-> master_log_pos=154 ; # 偏移量
- 啟動slave進程
mysql> start slave;
- 查看狀態(tài)信息(IO線程和 SQL線程必須同時是YES 狀態(tài))
mysql> show slave status \G
第四步:51主機配置Slave
- 進入mysql服務,切記要保持主從數(shù)據(jù)庫數(shù)據(jù)一致
[root@host51 ~]# mysql -uroot -p123qqq...A
- 指定主服務器信息(指定51為主服務器)
mysql> change master to
-> master_host="192.168.88.50", # 主服務器Ip地址
-> master_user="repluser" , # 主服務器添加用戶名
-> master_password="123qqq...A", # 用戶密碼
-> master_log_file="master50.000001" , # 主服務器binlog日志名
-> master_log_pos=154 ; # 偏移量
- 啟動slave進程
mysql> start slave;
- 查看狀態(tài)信息(IO線程和 SQL線程必須同時是YES 狀態(tài))
mysql> show slave status \G
第五步:測試主主結構的配置
- 先在host50主機健庫表插入記錄
- 在host51主機可以看到同樣的數(shù)據(jù)
[root@host50 ~]# mysql -uroot -p123qqq...A
create database db1;
create table db1.a(id int);
insert into db1.a values(666);
select * from db1.a;
+------+
| id |
+------+
| 666 |
+------+
- 然后再在host51庫下的表插入新記錄,在host50主機可以看到同樣的數(shù)據(jù)
[root@host51 ~]# mysql -uroot -p123qqq...A
insert into db1.a values(777);
select * from db1.a;
+------+
| id |
+------+
| 666 |
| 777 |
+------+
- 在 host50主機查看數(shù)據(jù)
[root@host50 ~]# mysql -uroot -p123qqq...A
select * from db1.a;
+------+
| id |
+------+
| 666 |
| 777 |
+------+