您好,登錄后才能下訂單哦!
node1的IP地址:192.168.1.254
node2的IP地址:192.168.1.253
操作系統(tǒng)為RHEL7.3,MySQL版本為5.7.18
1、修改node1的MySQL配置文件
#注意server_id字段一定不能一樣,由于前面的配置server_id已經(jīng)配置,且其值唯一,所以此處不再進(jìn)行配置
修改node1的mysql配置文件
# 服務(wù)器的ID,必須唯一,一般設(shè)置自己的IP
server_id=254
# 復(fù)制過濾:不需要備份的數(shù)據(jù)庫(MySQL庫一般不同步)
binlog-ignore-db=mysql
# 開啟二進(jìn)制日志功能,名字可以隨便取,最好有含義(比如項(xiàng)目名)
log-bin=lamp-mysql-bin
# 為每個(gè) session 分配的內(nèi)存,在事務(wù)過程中用來存儲(chǔ)二進(jìn)制日志的緩存
binlog_cache_size=1M
# 主從復(fù)制的格式(mixed,statement,row,默認(rèn)格式是 statement)
binlog_format=mixed
# 二進(jìn)制日志自動(dòng)刪除/過期的天數(shù)。默認(rèn)值為 0,表示不自動(dòng)刪除。
expire_logs_days=7
## 跳過主從復(fù)制中遇到的所有錯(cuò)誤或指定類型的錯(cuò)誤,避免 slave 端復(fù)制中斷。
## 如:1062 錯(cuò)誤是指一些主鍵重復(fù),1032 錯(cuò)誤是因?yàn)橹鲝臄?shù)據(jù)庫數(shù)據(jù)不一致
slave_skip_errors=1062
# 作為從服務(wù)器時(shí)的中繼日志
relay_log=lamp-mysql-relay-bin
# log_slave_updates 表示 slave 將復(fù)制事件寫進(jìn)自己的二進(jìn)制日志
log_slave_updates=1
# 主鍵自增規(guī)則,避免主從同步ID重復(fù)的問題
auto_increment_increment=2 # 自增因子(根據(jù)MySQL服務(wù)器數(shù)量修改,本例中是2臺(tái)MySQL服務(wù)器)
auto_increment_offset=1 # 自增偏移(從1開始)
2、修改node2的MySQL配置文件
# 復(fù)制過濾:不需要備份的數(shù)據(jù)庫(MySQL庫一般不同步)
binlog-ignore-db=mysql
# 開啟二進(jìn)制日志功能,名字可以隨便取,最好有含義(比如項(xiàng)目名)
log-bin=lamp-mysql-bin
# 為每個(gè) session 分配的內(nèi)存,在事務(wù)過程中用來存儲(chǔ)二進(jìn)制日志的緩存
binlog_cache_size=1M
# 主從復(fù)制的格式(mixed,statement,row,默認(rèn)格式是 statement)
binlog_format=mixed
# 二進(jìn)制日志自動(dòng)刪除/過期的天數(shù)。默認(rèn)值為 0,表示不自動(dòng)刪除。
expire_logs_days=7
## 跳過主從復(fù)制中遇到的所有錯(cuò)誤或指定類型的錯(cuò)誤,避免 slave 端復(fù)制中斷。
## 如:1062 錯(cuò)誤是指一些主鍵重復(fù),1032 錯(cuò)誤是因?yàn)橹鲝臄?shù)據(jù)庫數(shù)據(jù)不一致
slave_skip_errors=1062
# 作為從服務(wù)器時(shí)的中繼日志
relay_log=lamp-mysql-relay-bin
# log_slave_updates 表示 slave 將復(fù)制事件寫進(jìn)自己的二進(jìn)制日志
log_slave_updates=1
# 主鍵自增規(guī)則,避免主從同步ID重復(fù)的問題
auto_increment_increment=2 # 自增因子(根據(jù)MySQL服務(wù)器數(shù)量修改,本例中是2臺(tái)MySQL服務(wù)器)
auto_increment_offset=2 # 自增偏移(從2開始)
3、分別在node1和node2上重啟MySQL服務(wù)
在node1上重啟MySQL服務(wù)
[root@node1 ~]# systemctl restart mysqld
在node2上重啟MySQL服務(wù)
[root@node2 ~]# systemctl restart mysqld
4、在node1上進(jìn)入MySQL數(shù)據(jù)庫,且配置允許從node2同步的賬號(hào)
[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的值,配置從機(jī)時(shí)會(huì)用到
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作為自己的主服務(wù)器,并且開啟slave狀態(tài)。
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狀態(tài)。
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上兩個(gè)參數(shù)要全部是Yes狀態(tài)
8、在node2上創(chuàng)建允許從node1同步的賬號(hào)
[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作為自己的主服務(wù)器,并且開啟slave狀態(tài)。
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狀態(tài)。
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上兩個(gè)參數(shù)要全部是Yes狀態(tài)
12、在node1或node2任意一臺(tái)數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫,會(huì)自動(dòng)同步到另外一臺(tái)數(shù)據(jù)庫
mysql> create database netser;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| netser |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.09 sec)
在另外一個(gè)節(jié)點(diǎn),查看數(shù)據(jù)庫,會(huì)看到完全一致的數(shù)據(jù)信息
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| netser |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.06 sec)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。