1. 程式人生 > >mysql叢集搭建-主從配置

mysql叢集搭建-主從配置

主從形式

mysql主從複製:

一主一從
主主複製
一主多從—擴充套件系統讀取的效能,因為讀是在從庫讀取的;
多主一從—5.7開始支援
聯級複製—
在這裡插入圖片描述

用途及條件

mysql主從複製用途

  • 實時災備,用於故障切換
    讀寫分離,提供查詢服務
    備份,避免影響業務(備可用性和容錯行)
    負載平衡

主從部署必要條件:

  • 主庫開啟binlog日誌(設定log-bin引數)
    主從server-id不同
    從庫伺服器能連通主庫

主從原理

庫生成兩個執行緒,一個I/O執行緒,一個SQL執行緒;
I/O執行緒去請求主庫 的binlog,並將得到的binlog日誌寫到relay log(中繼日誌) 檔案中;
主庫會生成一個 log dump 執行緒,用來給從庫 i/o執行緒傳binlog;
SQL 執行緒,會讀取relay log檔案中的日誌,並解析成具體操作,來實現主從的操作一致,最終資料一致;
在這裡插入圖片描述


配置資訊

  • Mysql主伺服器:
    版本:mysql Ver 14.14 Distrib 5.7.20
    IP:192.168.168.226
    PORT:3306
  • Mysql從伺服器
    版本:mysql Ver 14.14 Distrib 5.7.20
    IP:192.168.168.227
    PORT:3306
    伺服器:

CentOS 7 搭建步驟

登入主伺服器,執行如下命令:

mysql -u root -p

提示密碼安全策略問題:

set global validate_password_policy=0;
grant replication slave on *.* TO 'backup'@'192.168.168.227' identified by 'Likang123qwe';
flush privileges

在這裡插入圖片描述
編輯主伺服器的資料庫配置檔案資訊my.cnf

vi /etc/my.cnf

新增如下資訊:

    server-id=226
    log_bin=/var/log/mysql/mysql-bin.log
    read-only=0
    binlog-do-db=test
    binlog-ignore-db=mysql

在這裡插入圖片描述
登入從伺服器,執行如下命令:

編輯從伺服器的資料庫配置檔案資訊:my.cnf

vi /etc/my.cnf
server-id=227
log_bin=/var/log/mysql/mysql-bin.log

在這裡插入圖片描述
重啟主伺服器

service mysqld restart

提示如下資訊:
在這裡插入圖片描述
修改:

  • 進入/var/log/資料夾下,新建檔案mysql,進入mysql目錄,新建檔案mysql-bin.log檔案,並賦予讀寫許可權(mysql和mysql-bin.log)
    登入主伺服器,檢視master狀態
show master status\G;

在這裡插入圖片描述
登入從伺服器,設定主從關係

change master to master_host='192.168.168.226',master_user='backup',master_password='Likang123qwe',master_log_file='mysql-bin.000001',master_log_pos=154;

在這裡插入圖片描述
檢視從伺服器的主從關係狀態

show slave status\G;

主伺服器下執行

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

從伺服器下執行

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

如果主從庫中不存在test庫,則需要重新建庫,然後重啟,重新構建主從關係

從伺服器下

 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes

如果都為yes,則主從搭建成功

至此,mysql主從配置成功