一粹庞、主機(jī)要求
1、最少兩臺(tái)互通的服務(wù)器
2洽损、設(shè)置防火墻規(guī)則
3庞溜、setenforce 0
二、環(huán)境要求及原理圖
1碑定、兩臺(tái)服務(wù)器均安裝mariadb-server
2流码、master IP:192.168.192.105
slave IP:192.168.192.106
三、步驟
主節(jié)點(diǎn)配置:
[root@test1 mysql]# vim /etc/my.cnf.d/server.cnf
[mysqld]
server-id = 1 # 設(shè)置唯一ID
log-bin = maste-log # 設(shè)置日志文件名稱
skip_name_resolve = ON # 跳過(guò)域名解析
sync_binlog = 1 # 同步二進(jìn)制日志文件
innodb-file-per-table = ON # 創(chuàng)建的表均為單一表
[root@test1 ~]# mysql -uroot -pwang
MariaDB [(none)]> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| maste-log.000003 | 563 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
# 記錄file文件名字和position位置編號(hào),后面配置從服務(wù)器時(shí)需要使用。
# 授權(quán)同步的賬號(hào)
MariaDB [(none)]> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'wang'@'192.168.192.106' IDENTIFIED BY 'wang';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)
從節(jié)點(diǎn)配置:
[root@test1 mysql]# vim /etc/my.cnf.d/server.cnf
[mysqld]
server-id = 2 # 設(shè)置唯一ID不能與其他ID沖突
skip_name_resolve = ON
innodb-file-per-table = ON
relay-log = relay-log
read_only = ON
[root@test2 ~]# mysql -uroot -pwang
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.192.105',MASTER_USER='wang',MASTER_PASSWORD='wang',MASTER_LOG_FILE='maste-log.000003',MASTER_LOG_POS=563;
MariaDB [(none)]> START SLAVE;
MariaDB [(none)]> SHOW SLAVE STATUS;
MariaDB [(none)]> SHOW SLAVE STATUS\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.192.105
Master_User: wang
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: maste-log.000003
Read_Master_Log_Pos: 812
Relay_Log_File: relay-log.000002
Relay_Log_Pos: 861
Relay_Master_Log_File: maste-log.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 812
Relay_Log_Space: 1149
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
測(cè)試:
在主服務(wù)器上操作
MariaDB [(none)]>CREATE DATABASE WANG;
然后再插入數(shù)據(jù)沈跨,這里就不再插入了备徐。
再?gòu)姆?wù)器上操作
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| WANG |
| mysql |
| performance_schema |
| test |
+--------------------+
OK 同步成功。
下面介紹互為主從的兩臺(tái)mariadb服務(wù)器夺欲,這里我們還是使用上述的兩臺(tái)服務(wù)器;
不過(guò)是需要修改配置文件。
[root@test1 mysql]# vim /etc/my.cnf.d/server.cnf
[mysqld]
auto_increment_offset=1 # 關(guān)鍵設(shè)置自增長(zhǎng)ID的初始值為1
auto_increment_increment=2 # 設(shè)置自增長(zhǎng)ID的每次增大的數(shù)值位2
skip_name_resolve = ON
innodb-file-per-table = ON
relay-log = relay-log
read_only = ON
log-bin = maste-log
sync_binlog = 1
[root@test2 mysql]# vim /etc/my.cnf.d/server.cnf
[mysqld]
auto_increment_offset=2 # 關(guān)鍵設(shè)置自增長(zhǎng)ID的初始值為2
auto_increment_increment=2 # 設(shè)置自增長(zhǎng)ID的每次增大的數(shù)值位2
skip_name_resolve = ON
innodb-file-per-table = ON
relay-log = relay-log
read_only = ON
log-bin = maste-log
sync_binlog = 1
按照原來(lái)的配置上的話我們已經(jīng)在test1節(jié)點(diǎn)上配置了授權(quán)用戶秘车,在test2節(jié)點(diǎn)上認(rèn)證了屬組。這里我們需要將操作反過(guò)來(lái)在test1節(jié)點(diǎn)上認(rèn)證屬組劫哼,在test2節(jié)點(diǎn)上配置授權(quán)用戶叮趴。
在test2上執(zhí)行MariaDB
MariaDB [(none)]> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'wang'@'192.168.192.106' IDENTIFIED BY 'wang';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)
在test1上執(zhí)行
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.192.105',MASTER_USER='wang',MASTER_PASSWORD='wang',MASTER_LOG_FILE='maste-log.000003',MASTER_LOG_POS=563;
MariaDB [(none)]> START SLAVE;
MariaDB [(none)]> SHOW SLAVE STATUS;
MariaDB [(none)]> SHOW SLAVE STATUS\G;
這里當(dāng)執(zhí)行完最后的命令的時(shí)候會(huì)出現(xiàn)和上面從節(jié)點(diǎn)執(zhí)行的相同命令的界面就OK了。不過(guò)這里還是建議實(shí)測(cè)一下权烧。test1和test2互相創(chuàng)建庫(kù)文件查看是否在另外一個(gè)節(jié)點(diǎn)上出現(xiàn)對(duì)應(yīng)的庫(kù)文件就OK了眯亦。