1、主從備份
首先在兩臺mysql數(shù)據(jù)庫開啟binlog日志,同時加上server-id,server-id不能相同
vim /etc/mysql/mysql.conf.d/mysqld.cnf? (ubuntu18下的mysql配置文件位置)
開啟binlog日志,和server-id
添加:
log-bin=/var/log/mysql/mysql-bin.log
server-id=3
同理第二臺mysql以同樣方式開啟,注意server-id號不能相同
這里以id=3為主服務(wù)器
進(jìn)入主服務(wù)器的mysql中,在mysql中使用命令:show master status; 查看binlog日是否開啟,并且在從服務(wù)器接受授權(quán)時需要該信息
在主服務(wù)器中為從服務(wù)器授權(quán)
grant replication slave on *.* to root@'IP' identified by '密碼‘;
flush privileges; #刷新權(quán)限
注:on *.* 授權(quán)備份的數(shù)據(jù)庫或者表
再從服務(wù)器中接受授權(quán)信息
change master to master_user='root',master_password='密碼',master_host='IP',master_log_file='mysql-bin.000003',master_log_pos='4286';
#master_user 主機(jī)用戶
#master_password 主機(jī)密碼
#master_host 主機(jī)ip
#master_log_file binlog日志(master status信息中展示的File部分)
#master_log_pos 日志文件大小(master status中的Position信息)
在開啟slave服務(wù)
start slave;
在查看slave狀態(tài)是否正確
show slave status\G;
在主服務(wù)器中測試,創(chuàng)建一個數(shù)據(jù)庫
create database qwe;
在從服務(wù)器使用 show databases;命令,查看是否同步
2、一主多從備份
該備份主從備份類似,都需要開啟server-id和binlog日志
繼續(xù)上面步驟,在主服務(wù)器中為新的從服務(wù)器授權(quán),?
grant replication slave on *.* to root@'IP' identified by '密碼';
flush privileges;
在從服務(wù)器中接受授權(quán)
change master to master_user='root',master_password='密碼',master_host='IP',master_log_file=' ',master_log_pos=' ';
注:此時master_log_file和master_log_pos可能發(fā)生改變,應(yīng)在主服務(wù)器中重新查看master狀態(tài),show master status;
在開啟slave狀態(tài)
start slave;
同樣在主服務(wù)器中創(chuàng)建新的數(shù)據(jù)庫,檢測兩個從服務(wù)器是否能查詢。
3、主主備份
在兩個mysql數(shù)據(jù)庫中同時開啟主服務(wù)器權(quán)限,也同時接受對方服務(wù)器授權(quán)權(quán)限。即互相開啟主從權(quán)限。
操作同主從備份一樣,不同之處在從服務(wù)器向主服務(wù)器開啟master權(quán)限,進(jìn)行g(shù)rant授權(quán),同時在主服務(wù)器中接受從服務(wù)器授權(quán),change master to。
在主服務(wù)器開啟slave:
start slave;
主主備份搭建完成。
補(bǔ)充:
在主從備份后要將主從備份之前的數(shù)據(jù)同步,使用mysqldump工具將之前的數(shù)據(jù)從主服務(wù)器導(dǎo)出,在通過ftp等方式傳輸?shù)綇姆?wù)器中,將數(shù)據(jù)導(dǎo)入到從服務(wù)器的mysql中來實現(xiàn)數(shù)據(jù)同步。