如何設定 MariaDB 主主複製
OS: 8.5
MariaDB: MariaDB 10.3.28
兩臺主機名稱如下:
- Hostname: MasterA ,IP:192.168.232.130
- Hostname: MasterB ,IP:192.168.232.131
使用下面 在兩天伺服器中安裝mariadb服務:
# MasterA中安裝: [root@MasterA ~]# yum -y install mariadb mariadb-server # MasterB中安裝: [root@MasterB ~]# yum -y install mariadb mariadb-server
啟動mariadb服務:
[root@MasterA ~]# systemctl enable mariadb --now [root@MasterB ~]# systemctl enable mariadb --now
編輯/etc/my.cnf.d/mariadb-server.cnf配置檔案
修改MasterA節點的mariadb-server.cnf配置檔案:
[root@MasterA my.cnf.d]# vim mariadb-server.cnf
在mysqld部分下面新增server-id,log-bin 和 log-basename
儲存配置,並重啟MasterA的MariaDB服務。
[root@MasterA ~]# systemctl restart mariadb
在MasterA的資料庫中建立一個帳戶,使用者名稱為replica_user,密碼為123456,指定slave的IP地址為192.168.232.131,也就是MasterB的IP地址。
MariaDB [(none)]> grant replication slave on *.* to 'replica_user'@192.168.232.131 identified by '123456'; Query OK, 0 rows affected (0.000 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.001 sec)
修改MasterB節點的mariadb-server.cnf配置檔案:
[root@MasterB ~]# vim /etc/my.cnf.d/mariadb-server.cnf
在mysqld部分下面新增server-id,log-bin 和 log-basename
儲存配置,並重啟MasterA的MariaDB服務。
[root@MasterA ~]# systemctl restart mariadb
在MasterB的資料庫中建立一個帳戶,使用者名稱為replica_user,密碼為123456,指定slave的IP地址為192.168.232.130,也就是MasterA的IP地址。
MariaDB [(none)]> grant replication slave on *.* to 'replica_user'@192.168.232.130 identified by '123456'; Query OK, 0 rows affected (0.000 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.001 sec)
首先進入MasterA作業系統,進入資料庫,使用
show master status;
檢視二進位制日誌名稱和pos值:
[root@MasterA ~]# mysql -u root -p123456 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 19 Server version: 10.3.28-MariaDB-log MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show master status; +---------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------------+----------+--------------+------------------+ | master01-bin.000004 | 5078 | | | +---------------------+----------+--------------+------------------+ 1 row in set (0.000 sec) MariaDB [(none)]>
在MasterB系統中進入資料庫,指定MasterA伺服器的資訊,並指定剛才從MasterA獲取的bin-log檔名和position值,並啟動slave:
MariaDB [(none)]> change master to master_host='192.168.232.130', -> master_user='replica_user', -> master_password='123456', -> master_log_file='master01-bin.000004', -> master_log_pos=5078; Query OK, 0 rows affected (0.007 sec) MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.002 sec)
檢視slave狀態是否有報錯:
看到上圖中,
Slave_IO_Running
和
Slave_SQL_Running
都為yes,
Last_Error
沒有錯誤資訊。
其次,在MasterB的資料庫中查詢master相關資訊:
MariaDB [(none)]> show master status; +---------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------------+----------+--------------+------------------+ | master02-bin.000001 | 1080 | | | +---------------------+----------+--------------+------------------+ 1 row in set (0.000 sec)
在MasterA系統中進入資料庫,指定MasterB伺服器的資訊,並指定剛才從MasterB獲取的bin-log檔名和position值,並啟動slave:
MariaDB [(none)]> change master to master_host='192.168.232.131', -> master_user='replica_user', -> master_password='123456', -> master_log_file='master02-bin.000001', -> master_log_pos=1080; Query OK, 0 rows affected (0.010 sec) MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.002 sec)
檢視slave狀態是否有報錯:
看到上圖中,
Slave_IO_Running
和
Slave_SQL_Running
都為yes,
Last_Error
沒有錯誤資訊。
任意一臺資料庫,建立資料庫後,另一臺也可以看到了。下面實在MasterB中建立的資料庫:
MariaDB [test_replica]> create database mydb; Query OK, 1 row affected (0.000 sec)
在MasterA中檢視是否有mydb資料庫:
下面是在MasterA中建立資料庫:
MariaDB [(none)]> create database mydb_02; Query OK, 1 row affected (0.000 sec)
在MasterB中檢視是否有mydb_02資料庫:
下面例項將MasterA資料庫中的test_replica庫備份,並匯入到MasterB的資料庫中,然後在MasterB中的資料庫中新增資料,檢視是否會同步:
[root@MasterA ~]# mysqldump -u root -p123456 test_replica > a.sql [root@MasterA ~]# scp a.sql root@192.168.232.131:~
切換到MasterB作業系統,建立一個資料庫名稱為test_replica:
[root@MasterB ~]# mysql -u root -p123456 -e 'create database test_replica;' [root@MasterB ~]# mysql -u root -p123456 -e 'show databases;'
將MasterA到處的資料匯入到MasterB系統中的test_replica庫中:
[root@MasterB ~]# mysql -u root -p123456 test_replica < a.sql
看到已經匯入了資料表。
下面在MasterB中,進入test_replica庫,向Admins表新增資料,然後在MasterA中檢視是否也存在同樣資料:
MariaDB [test_replica]> insert into Admins values ('user01','123'); Query OK, 1 row affected (0.002 sec)
在MasterA中檢視test_replica資料庫中的Admins表:
[root@MasterA ~]# mysql -u root -p123456 -e 'select * from test_replica.Admins;' +--------+------+ | Aname | Apwd | +--------+------+ | admin | 123 | | user01 | 123 | +--------+------+
可以看到資料存在。下面在MasterA中向Admins表新增資料,檢視MasterB資料庫中是否會同步:
MariaDB [test_replica]> insert into Admins values ('user02','321') ; Query OK, 1 row affected (0.002 sec)
在MasterB中也可以看到剛剛建立的資訊:
[root@MasterB ~]# mysql -u root -p123456 -e 'select * from test_replica.Admins;' +--------+------+ | Aname | Apwd | +--------+------+ | admin | 123 | | user01 | 123 | | user02 | 321 | +--------+------+
這樣就完成啦。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2896392/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql(Mariadb)資料庫主從複製MySql資料庫
- MySQL主從複製與主主複製MySql
- CentOS 7 named設定主從複製CentOS
- MySQL主從複製、半同步複製和主主複製MySql
- mysql5.7主從複製,主主複製MySql
- MySQL主從複製、半同步複製和主主複製概述MySql
- mysql主主複製(雙主複製)配置步驟MySql
- MySQL 主主複製MySql
- MySQL的主從複製、半同步複製、主主複製詳解MySql
- 配置mysql5.5主從複製、半同步複製、主主複製MySql
- MySQL的主從複製與MySQL的主主複製MySql
- MySQL主主複製(雙主複製)配置過程介紹MySql
- MariaDB系列之三:基於日誌(binlog)主主複製(Master-Master)AST
- Windows 環境下,MySQL 的主從複製和主主複製WindowsMySql
- windows環境下,Mysql的主從複製和主主複製WindowsMySql
- MYSQL主主複製的搭建MySql
- oracle 複製中設定主體站點指令碼Oracle指令碼
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- 主從複製、雙主複製及半同步複製、以及基於SSL的複製
- MySQL叢集之 主從複製 主主複製 一主多從 多主一叢 實現方式MySql
- MySQL 5.5 主主複製搭建流程MySql
- mysql複製--主從複製配置MySql
- Linux下Redis主從複製以及SSDB主主複製環境部署記錄LinuxRedis
- Redis - 主從複製Redis
- Redis:主從複製Redis
- MongoDB主從複製MongoDB
- MySQL 主從複製MySql
- 【MySql】主從複製MySql
- Redis主備複製Redis
- MySQL主從複製MySql
- redis主從複製Redis
- Keepalived+Mysql配置主主複製MySql
- mysql主從複製+主備切換MySql
- MySQL主從複製_複製過濾MySql
- MySQL(二):主從複製結構、半同步複製、雙主複製結構、利用SSL實現安全的MySQL主從複製MySql
- 主從複製是啥或者主從複製的原理是什麼?
- mysql主從複製(一):一主多從MySql
- 利用KEEPALIVED構建mysql主主複製MySql