您好,登錄后才能下訂單哦!
node1的IP地址:192.168.1.254
node2的IP地址:192.168.1.253
操作系統為RHEL7.3,MySQL版本為5.7.18
1、修改node1的MySQL配置文件
#注意server_id字段一定不能一樣,由于前面的配置server_id已經配置,且其值唯一,所以此處不再進行配置
修改node1的mysql配置文件
# 服務器的ID,必須唯一,一般設置自己的IP
server_id=254
# 復制過濾:不需要備份的數據庫(MySQL庫一般不同步)
binlog-ignore-db=mysql
# 開啟二進制日志功能,名字可以隨便取,最好有含義(比如項目名)
log-bin=lamp-mysql-bin
# 為每個 session 分配的內存,在事務過程中用來存儲二進制日志的緩存
binlog_cache_size=1M
# 主從復制的格式(mixed,statement,row,默認格式是 statement)
binlog_format=mixed
# 二進制日志自動刪除/過期的天數。默認值為 0,表示不自動刪除。
expire_logs_days=7
## 跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免 slave 端復制中斷。
## 如:1062 錯誤是指一些主鍵重復,1032 錯誤是因為主從數據庫數據不一致
slave_skip_errors=1062
# 作為從服務器時的中繼日志
relay_log=lamp-mysql-relay-bin
# log_slave_updates 表示 slave 將復制事件寫進自己的二進制日志
log_slave_updates=1
# 主鍵自增規則,避免主從同步ID重復的問題
auto_increment_increment=2 # 自增因子(根據MySQL服務器數量修改,本例中是2臺MySQL服務器)
auto_increment_offset=1 # 自增偏移(從1開始)
2、修改node2的MySQL配置文件
# 復制過濾:不需要備份的數據庫(MySQL庫一般不同步)
binlog-ignore-db=mysql
# 開啟二進制日志功能,名字可以隨便取,最好有含義(比如項目名)
log-bin=lamp-mysql-bin
# 為每個 session 分配的內存,在事務過程中用來存儲二進制日志的緩存
binlog_cache_size=1M
# 主從復制的格式(mixed,statement,row,默認格式是 statement)
binlog_format=mixed
# 二進制日志自動刪除/過期的天數。默認值為 0,表示不自動刪除。
expire_logs_days=7
## 跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免 slave 端復制中斷。
## 如:1062 錯誤是指一些主鍵重復,1032 錯誤是因為主從數據庫數據不一致
slave_skip_errors=1062
# 作為從服務器時的中繼日志
relay_log=lamp-mysql-relay-bin
# log_slave_updates 表示 slave 將復制事件寫進自己的二進制日志
log_slave_updates=1
# 主鍵自增規則,避免主從同步ID重復的問題
auto_increment_increment=2 # 自增因子(根據MySQL服務器數量修改,本例中是2臺MySQL服務器)
auto_increment_offset=2 # 自增偏移(從2開始)
3、分別在node1和node2上重啟MySQL服務
在node1上重啟MySQL服務
[root@node1 ~]# systemctl restart mysqld
在node2上重啟MySQL服務
[root@node2 ~]# systemctl restart mysqld
4、在node1上進入MySQL數據庫,且配置允許從node2同步的賬號
[root@node1 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.18-log Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant replication slave, replication client on *.* to 'repl'@'192.168.1.253' identified by 'repl@123';
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
5、在node1上查看并記錄binlog文件的position和File的值,配置從機時會用到
mysql> show master status;
+-----------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------------+----------+--------------+------------------+-------------------+
| lamp-mysql-bin.000001 | 631 | | mysql | |
+-----------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>
6、在node2上將node1作為自己的主服務器,并且開啟slave狀態。
mysql> change master to master_host='192.168.1.254',master_user='repl', master_password='repl@123', master_port=3306, master_log_file='lamp-mysql-bin.000001', master_log_pos=631, master_connect_retry=30;
mysql> start slave;
7、在node2上查看自己的slave狀態。
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上兩個參數要全部是Yes狀態
8、在node2上創建允許從node1同步的賬號
[root@node2 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.18-log Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant replication slave, replication client on *.* to 'repl'@'192.168.1.254' identified by 'repl@123';
mysql> flush privileges;
9、在node2上查看并記錄binlog文件的position和File的值。
mysql> show master status;
+-----------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------------+----------+--------------+------------------+-------------------+
| lamp-mysql-bin.000001 | 474 | | mysql | |
+-----------------------+----------+--------------+------------------+-------------------+
10、在node1上將node2作為自己的主服務器,并且開啟slave狀態。
mysql> change master to master_host='192.168.1.253',master_user='repl', master_password='repl@123', master_port=3306, master_log_file='lamp-mysql-bin.000001', master_log_pos=474, master_connect_retry=30;
mysql> start slave;
11、在node1上查看自己的slave狀態。
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上兩個參數要全部是Yes狀態
12、在node1或node2任意一臺數據庫中創建數據庫,會自動同步到另外一臺數據庫
mysql> create database netser;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| netser |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.09 sec)
在另外一個節點,查看數據庫,會看到完全一致的數據信息
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| netser |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.06 sec)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。