MySql / MariaDB 構(gòu)建主從復(fù)制

~~ !??!環(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;

~~ ?。?! 配置完成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容