主服務(wù)器上進(jìn)行操作
(1)創(chuàng)建用戶并授權(quán)
1 ? ?mysql -uroot -p密碼 ? ?
2 ? ?mysql>grant replication slave on *.* to www-data@'%' identified by?'Xbc@000923';?
重啟主庫(kù)
(2)查詢主數(shù)據(jù)庫(kù)的狀態(tài)
1 ? ?mysql> show master status; ?
記下File以及Position的值,在后面進(jìn)行從服務(wù)器操作的時(shí)候需要使用。
配置從服務(wù)器
(1)修改從服務(wù)器的配置文件/etc/my.cnf
使得“server-id=2”,并確定這個(gè)id沒有被別的mysql服務(wù)所使用。
(2)啟動(dòng)mysql服務(wù) ?
(3)mysql登錄并執(zhí)行同步的sql語句,最后并啟動(dòng)slave
1 ? ?#mysql -uroot -p ? ?
2 ? ?mysql> change master to master_host='47.90.125.237',master_user='www-data',master_password='Xbc@000923',master_log_file='mysql-bin.000001',master_log_pos=1607; ? ?
3 ? ?mysql> start slave;?
就啟動(dòng)了slave同步功能。
(5)主從同步檢查
執(zhí)行如下語句
1 ? ?mysql>show slave status\G ? ?
來檢查從服務(wù)器的同步情況,一個(gè)正常的輸出結(jié)果應(yīng)該如下面的形式:
Slave_IO進(jìn)程以及slave_SQL進(jìn)程都必須正常運(yùn)行,在狀態(tài)輸出中表現(xiàn)為:“slave”;否則都是不正確的狀態(tài)(如一個(gè)值是Yes,另一個(gè)是No則不行)。
如果主數(shù)據(jù)庫(kù)服務(wù)器已經(jīng)存在用戶數(shù)據(jù),那么在進(jìn)行主從復(fù)制時(shí),需要做以下處理。
(1)主數(shù)據(jù)庫(kù)鎖表操作,不讓數(shù)據(jù)再進(jìn)行寫入動(dòng)作。
1 ? ?mysql>flush tables?withread lock; ? ?
(2)查看主數(shù)據(jù)庫(kù)的狀態(tài)
1 ? ?mysql>show master status; ? ?
記下File以及Position的值,以備從服務(wù)器使用。
(3)把主服務(wù)器的數(shù)據(jù)文件復(fù)制到從服務(wù)器,最好先用tar歸檔壓縮處理一下
(4)取消主數(shù)據(jù)庫(kù)鎖定
1 ? ?mysql>unlock tables; ? ?
從服務(wù)器的操作和前面的步驟一樣,略過。
實(shí)驗(yàn)一
在主數(shù)據(jù)庫(kù)服務(wù)器上創(chuàng)建庫(kù)和表,然后插入記錄,再登錄到從服務(wù)器,查看是否也建立相一致的庫(kù)和表以及記錄。
(1)主服務(wù)器上的操作
1 ? ?mysql>create database first_tb; ? ?
①在主數(shù)據(jù)庫(kù)服務(wù)器創(chuàng)建庫(kù)first_tb;
1 ? ?mysql>create table first_db(idint(3)),name char (10)); ? ?
②在主數(shù)據(jù)庫(kù)服務(wù)器創(chuàng)建表first_tb;
1 ? ?mysql>insert into first_tb values (001,'myself'); ? ?
③在主數(shù)據(jù)服務(wù)器的表first_tb中插入記錄;
(2)從服務(wù)器上查看
1 ? ?mysql>show databases; ? ?
①數(shù)據(jù)庫(kù)first_db自動(dòng)生成
②表first_tb也自動(dòng)生成,數(shù)據(jù)記也錄存在。
實(shí)驗(yàn)二
導(dǎo)入數(shù)據(jù)庫(kù),在主庫(kù)上查看現(xiàn)在的數(shù)據(jù)庫(kù)
創(chuàng)建數(shù)據(jù)庫(kù)buy并且導(dǎo)入數(shù)據(jù)
在從庫(kù)上查看,數(shù)據(jù)庫(kù)已經(jīng)完全導(dǎo)入。
主從延遲解決方案
現(xiàn)在還不想說,自己悟吧