Mycat分佈式數據庫架構解決方案--搭建MySQL讀寫分離環境--一主多從

echo編輯整理,歡迎轉載,轉載請聲明文章來源。歡迎添加echo微信(微信號:t2421499075)交流學習。 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這纔是真正的堪稱強大!!!html


本文主要爲了記錄MySQL搭建讀寫分離的操做,是本人的操做紀實,並無詳細講解其中的原理和操做設置,若是須要詳細解釋的,不建議閱讀。mysql

環境準備:

linux系統版本 對應服務器地址 數據庫 版本
CentOS7 192.168.222.132 MySQL 5.6
CentOS7 192.168.222.133 MySQL 5.6
CentOS7 192.168.222.134 MySQL 5.6

第一步:創建時間同步環境

  • 使用yum安裝npt
yum install ntp –y
  • 安裝完成以後修改ntp對應的配置文件
vi /etc/ntp.conf
  • 添加以下配置:圖片中地址,對應咱們本身服務器的地址
restrict 192.168.222.132 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 8

在這裏插入圖片描述

  • 啓動ntp服務
systemctl start ntpd
  • 檢驗ntp是否成功安裝運行,若是正常工做咱們能夠獲得以下信息
ntpq -p

在這裏插入圖片描述

將咱們三臺服務所有作以上配置,配置完成以後,咱們就能夠開始設置主mysql服務器了linux

第二步:配置 MySQL 主服務器

  • 打開my.cnf配置文件,進行以下配置
# 打開文件
vi /etc/my.cnf

找到配置文件中的這一段,而後按照下面的配置進行修改 在這裏插入圖片描述sql

server-id=132   # 使用ip的後端做爲咱們的主服務id
log_bin=mysql-bin  # 開啓MySQ二進制日誌系統。
  • 登陸mysql,而後獲取數據庫列表
mysql -uroot -P3306 -p123456 -h192.168.222.132

show databases;

在這裏插入圖片描述

binlog-do-db=test  # 須要同步的數據庫名test,其餘的數據庫不一樣步。
binlog-ignore-db=mysql   #不一樣步mysql系統數據庫,每個數據庫對應一行。
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
  • 配置完成,重複服務
service mysql restart
  • 查看咱們的配置是否成功
show master status;

在這裏插入圖片描述

若是顯示結果和咱們配置一致證實咱們的主服務器配置已經成功啦!能夠進行從服務器的配置數據庫

配置從服務器

  • 打開my.cnf配置文件,進行以下配置
# 打開文件
vi /etc/my.cnf

找到配置文件中的這一段,而後按照下面的配置進行修改 在這裏插入圖片描述後端

server-id=133   # 使用ip的後端做爲咱們的主服務id
log_bin=mysql-bin  # 開啓MySQ二進制日誌系統。
  • 登陸mysql,而後獲取數據庫列表
mysql -uroot -P3306 -p123456 -h192.168.222.133

show databases;

在這裏插入圖片描述

binlog-do-db=test  # 須要同步的數據庫名test,其餘的數據庫不一樣步。
binlog-ignore-db=mysql   #不一樣步mysql系統數據庫,每個數據庫對應一行。
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
  • 配置完成,重複服務
service mysql restart

從服務器須要作的關鍵操做

  • 爲從服務器建立一個能夠登陸主服務器的帳號。
# 登陸主服務器,建立一個新帳號
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.222.133' IDENTIFIED BY '123456';
# 刷新權限
FLUSH PRIVILEGES;
  • 而後使用root用戶鏈接mysql,再執行一下語句
change master to
master_host='192.168.222.132',
master_user='slave',
master_password='123456',
master_log_file='mysql-bin.000011',
master_log_pos=1243;
  • 配置完成以後,啓動從服務器
start slave;
  • 查看從服務器啓動狀態
show slave status \G;

在這裏插入圖片描述 出現上面這兩個「Yes」就證實已經配置成功了服務器

  • 若是發現配置不對,須要先停掉從服務器
stop slave;
  • 而後重置從服務器
reset slave;

採坑解決

在這裏插入圖片描述 若是出現如上報錯,咱們須要先中止從服務器。該問題引發的緣由是我以前安裝數據庫的時候並無發現他們的版本不一致致使的,停機更新版本以後再次按照下面步驟操做就行了。微信

# 先停掉從服務器
stop slave;
# 重置從服務器
reset slave;
# 而後排查配置的問題,從新配置一遍
change master to
master_host='192.168.222.132',
master_user='slave',
master_password='123456',
master_log_file='mysql-bin.000011',
master_log_pos=709;
# 再次啓動
start slave;
# 查看服務器狀態
show slave status \G;

嘗試建立一個表,查看是否同步

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `user_name` varchar(255) DEFAULT NULL,
  `pass_word` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在這裏插入圖片描述

到這裏咱們已經成功啦!學習


注意:

咱們配置第三臺服務的時候,須要重新建立一個給第三臺服務器訪問的主服務器的帳號。同時,因爲咱們是在本地虛擬機上安裝的讀寫分離環境,因此每一次啓動mysql或者關閉虛擬機都會致使mysql的position改變,因此咱們要跟隨着配置變化,每次啓動讀寫環境前檢查一下,修改配置和上面採坑解決的步驟一直。spa


作一個有底線的博客主

原文出處:https://www.cnblogs.com/xlecho/p/11796619.html

相關文章
相關標籤/搜索