echo編輯整理,歡迎轉載,轉載請聲明文章來源。歡迎添加echo微信(微信號:t2421499075)交流學習。 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這纔是真正的堪稱強大!!!mysql
本文主要爲了記錄MySQL搭建讀寫分離的操做,是本人的操做紀實,並無詳細講解其中的原理和操做設置,若是須要詳細解釋的,不建議閱讀。linux
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 install ntp –y複製代碼
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複製代碼
systemctl start ntpd複製代碼
ntpq -p複製代碼
將咱們三臺服務所有作以上配置,配置完成以後,咱們就能夠開始設置主mysql服務器了sql
# 打開文件
vi /etc/my.cnf複製代碼
找到配置文件中的這一段,而後按照下面的配置進行修改數據庫
server-id=132 # 使用ip的後端做爲咱們的主服務id
log_bin=mysql-bin # 開啓MySQ二進制日誌系統。複製代碼
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;複製代碼
若是顯示結果和咱們配置一致證實咱們的主服務器配置已經成功啦!能夠進行從服務器的配置後端
# 打開文件
vi /etc/my.cnf複製代碼
找到配置文件中的這一段,而後按照下面的配置進行修改服務器
server-id=133 # 使用ip的後端做爲咱們的主服務id
log_bin=mysql-bin # 開啓MySQ二進制日誌系統。複製代碼
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;複製代碼
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;複製代碼
到這裏咱們已經成功啦!spa
咱們配置第三臺服務的時候,須要重新建立一個給第三臺服務器訪問的主服務器的帳號。同時,因爲咱們是在本地虛擬機上安裝的讀寫分離環境,因此每一次啓動mysql或者關閉虛擬機都會致使mysql的position改變,因此咱們要跟隨着配置變化,每次啓動讀寫環境前檢查一下,修改配置和上面採坑解決的步驟一直。rest
作一個有底線的博客主