
一主一從

一主多從
搭建
1、架設(shè)兩臺(tái)服務(wù)器,全部安裝好相同版本的mysql
2、關(guān)閉防火墻
service iptables stop
3、關(guān)閉SELinux
setenforce 0
4、修改/etc/my.conf
server-id=1 #主機(jī)可以設(shè)置為1,從機(jī)可以設(shè)置為IP最后一段(保證id的唯一性)
#主從服務(wù)器的核心,主服務(wù)器的mysql-bin會(huì)在讀寫(xiě)以及執(zhí)行事務(wù)的的過(guò)程中生成日志文件
#從服務(wù)器通過(guò)讀取主服務(wù)器的日志再?gòu)姆?wù)器中運(yùn)行日志中的事務(wù)或者讀寫(xiě)操作
log-bin=mysql-bin
service mysqld restart #重啟mysql服務(wù)
注意:log-bin文件的開(kāi)啟非常重要,即使不配置主從服務(wù)的mysql也建議開(kāi)啟,我身邊已經(jīng)有好幾個(gè)案例由于服務(wù)器安全性較低,被sql注入刪庫(kù)的問(wèn)題,開(kāi)啟后出現(xiàn)問(wèn)題可通過(guò)log-bin文件恢復(fù)數(shù)據(jù)庫(kù)
5、主服務(wù)器上和從服務(wù)器數(shù)據(jù)庫(kù)和數(shù)據(jù)表保持一致
- 登錄數(shù)據(jù)庫(kù)
mysql -uroot -p - 創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)
create database test; - 選擇test數(shù)據(jù)庫(kù)
use test; - 創(chuàng)建用于主從測(cè)試的數(shù)據(jù)表user
create table user(id int(11) auto_increment primary key,name varchar(30))engine=innodb,default charset=utf8;
- 主服務(wù)器配置(創(chuàng)建一個(gè)專門用來(lái)同步數(shù)據(jù)的賬號(hào))
grant replication slave on *.* to 'mysnyc'@'%' identified by '123456789';
show master status;#查看狀態(tài),此后不要在進(jìn)行任何操作

image.png
6、從服務(wù)器進(jìn)行配置(下方所示ip地址請(qǐng)根據(jù)實(shí)際情況進(jìn)行替換):
change master to master_host='192.168.1.10', master_user='mysync',master_password='123456789',master_log_file='mysql-bin.000006',master_log_pos=511
標(biāo)紅處請(qǐng)與上圖對(duì)應(yīng)File以及Position位置保持一致
start slave;#開(kāi)啟從服務(wù)
show slave status \G#查看從服務(wù)狀態(tài),如下兩個(gè)選項(xiàng)都為Yes表明主從成功
Slave_IO_Running:Yes
Slave_SQL_Running:Yes

image.png
7、主服務(wù)器進(jìn)行插入數(shù)據(jù)測(cè)試
insert into user(name)value('xiaoming');
從服務(wù)器查看:select * from user;