~~ !??!環(huán)境介紹:
- 主服務(wù)器 -> ip:192.168.0.104、系統(tǒng):centos7、數(shù)據(jù)庫:mariadb
- 從服務(wù)器 -> ip:192.168.0.105、系統(tǒng):centos7、數(shù)據(jù)庫:mariadb
- 從服務(wù)器 -> ip:192.168.0.106、系統(tǒng):centos7、數(shù)據(jù)庫:mariadb
~~ ?。。≌埍WC主服務(wù)器防火墻關(guān)閉,下面開始構(gòu)建主從復(fù)制
一、配置主機(jī) 192.168.0.104
1、修改主服務(wù)器下 /etc/my.cnf 文件,在 [mysqld] 下添加如下代碼,可參考下圖:
// 如果不知道 my.cnf 文件在哪,可使用 find / -name my.cnf 命令查找
// 這里 server-id 中的 104 是本機(jī)ip的尾號,可隨意設(shè)置數(shù)字,但要保證不重復(fù)
server-id = 104
log-bin = master-bin
log-bin-index = master-bin.index

2、啟動 / 重啟 數(shù)據(jù)庫服務(wù),可參考以下命令
// mariadb 啟動數(shù)據(jù)庫 ↓
service mariadb start
// mariadb 重啟數(shù)據(jù)庫 ↓
service mariadb restart
// mysql5.0 啟動數(shù)據(jù)庫 ↓
service mysqld start
// mysql5.0 重啟數(shù)據(jù)庫 ↓
service mysqld restart
// mysql5.5.7 啟動數(shù)據(jù)庫 ↓
service mysql start
// mysql5.5.7 重啟數(shù)據(jù)庫 ↓
service mysql restart
3、在主服務(wù)器數(shù)據(jù)庫中創(chuàng)建一個用戶:admin_x,密碼:123456
// 這里的 @localhost 是限制用戶只能在 固定的地址 localhost 登入,可根據(jù)個人需求修改
create user admin_x@localhost identified by '123456';
4、在主機(jī)中查看創(chuàng)建的用戶,結(jié)果如下圖:
// 在 數(shù)據(jù)庫:mysql,表:user下查看用戶 ↓
select host, user, password from mysql.user;

5、在主機(jī)中依次為從機(jī)分配權(quán)限,并刷新權(quán)限表:
// 為從機(jī) 192.168.0.105分配權(quán)限
grant replication slave on *.* to 'admin_x'@'192.168.0.105' identified by '123456';
// 為從機(jī) 192.168.0.106分配權(quán)限
grant replication slave on *.* to 'admin_x'@'192.168.0.106' identified by '123456';
// 刷新權(quán)限表
flush privileges;
6、查看主機(jī)二進(jìn)制日志文件名與位置
// 查看主機(jī)二進(jìn)制日志文件名與位置
show master status;

二、配置從機(jī) 192.168.0.105
1、修改 my.cnf 文件,在[mysqld] 下添加以下代碼:
// 這里 server-id 中的 105 是本機(jī)ip的尾號,可隨意設(shè)置數(shù)字,但要保證不重復(fù)
server-id = 105
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
2、啟動 / 重啟 并 進(jìn)入數(shù)據(jù)庫,設(shè)置連接
// 告訴從服務(wù)器 用哪個賬號、用哪個密碼、在哪里 讀主服務(wù)器的日志文件
CHANGE MASTER TO
MASTER_HOST = '192.168.0.104',
MASTER_USER = 'admin_x',
MASTER_PASSWORD = '123456',
MASTER_LOG_FILE = 'master-bin.000004',
MASTER_LOG_POS = 745;

3、啟動從服務(wù),并查看狀態(tài),確保服務(wù)啟動
// 啟動從服務(wù)器
start slave
// 查看從機(jī)狀態(tài),如下圖
show slave status \G;

三、配置從機(jī) 192.168.0.106(基本重復(fù)第二大步驟)
1、修改 my.cnf 文件,在[mysqld] 下添加以下代碼:
// 這里 server-id 中的 106 是本機(jī)ip的尾號,可隨意設(shè)置數(shù)字,但要保證不重復(fù)
server-id = 106
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
2、啟動 / 重啟 并 進(jìn)入數(shù)據(jù)庫,設(shè)置連接
// 告訴從服務(wù)器 用哪個賬號、用哪個密碼、在哪里 讀主服務(wù)器的日志文件
CHANGE MASTER TO
MASTER_HOST = '192.168.0.104',
MASTER_USER = 'admin_x',
MASTER_PASSWORD = '123456',
MASTER_LOG_FILE = 'master-bin.000004',
MASTER_LOG_POS = 745;
3、啟動從服務(wù),并查看狀態(tài)
// 啟動從服務(wù)器
start slave
// 查看從機(jī)狀態(tài),如下圖
show slave status \G;

四、測試主從復(fù)制
1、在主服務(wù)器 192.168.0.104 中創(chuàng)建一個新的數(shù)據(jù)庫,并查看數(shù)據(jù)庫列表
create database if not exists test_x default charset utf8 collate utf8_general_ci;
// 顯示主機(jī)數(shù)據(jù)庫列表
show databases;

2、在從機(jī) 192.168.0.105 中查看是否有新數(shù)據(jù)庫
// 顯示從機(jī)數(shù)據(jù)庫列表
show databases;

3、在從機(jī) 192.168.0.106 中查看是否有新數(shù)據(jù)庫
// 顯示從機(jī)數(shù)據(jù)庫列表
show databases;

~~ ?。?! 配置完成