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 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服務器了linux
# 打開文件 vi /etc/my.cnf
找到配置文件中的這一段,而後按照下面的配置進行修改 sql
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;
到這裏咱們已經成功啦!學習
咱們配置第三臺服務的時候,須要重新建立一個給第三臺服務器訪問的主服務器的帳號。同時,因爲咱們是在本地虛擬機上安裝的讀寫分離環境,因此每一次啓動mysql或者關閉虛擬機都會致使mysql的position改變,因此咱們要跟隨着配置變化,每次啓動讀寫環境前檢查一下,修改配置和上面採坑解決的步驟一直。spa
作一個有底線的博客主
原文出處:https://www.cnblogs.com/xlecho/p/11796619.html