最近研究了一下mysql,動手配置了主從復(fù)制,效果完全實現(xiàn)。這里寫出來和大家共享一下,
我是在一臺win7上安裝了兩個mysql數(shù)據(jù)庫來實現(xiàn)的,將從數(shù)據(jù)庫的port設(shè)置為3308.如何安裝兩臺數(shù)據(jù)庫,這里就不講了,只講一下我是如何實現(xiàn)配置來實現(xiàn)主從復(fù)制的。
一.主數(shù)據(jù)庫配置:
1. 修改配置信息:
win7上默認(rèn)的mysql配置信息文件安裝路徑為:(linux:/etc/my.cnf)
C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.6\my.ini,
在[mysqld]添加如下配置:
server-id =1
sync_binlog=1
##同步的數(shù)據(jù)庫
binlog-do-db=usercenter
##被忽略的數(shù)據(jù)庫
binlog_ignore_db=mysql
另外還有個參數(shù)也必須要配置:
log-bin=mysql-bin //[必須]啟用二進(jìn)制日志
完了重啟動主庫。
2.創(chuàng)建專門用來主從同步的用戶并授權(quán):
sql如下:
mysql>grant replication slave on *.* to ‘用戶名’@'主機(jī)’ identified by ‘密碼’;
3.鎖主庫表--這個非必需。
mysql> FLUSH TABLES WITH READ LOCK;
4.顯示主庫信息
記錄File和Position,從庫設(shè)置將會用到,從庫的相關(guān)參數(shù)必須設(shè)置得和主庫的一致。
=====================
mysql> SHOW MASTER STATUS;
二。從庫配置:
1.修改配置信息:
找從庫的my.ini文件,
在[mysqld]下添加如下配置,帶#號的不需要,在win7下配置了反而導(dǎo)致數(shù)據(jù)庫無法啟動,不知道是否是因為是一臺機(jī)器上多個數(shù)據(jù)庫的原因,還是在win7上的原因。
server-id=2
#master-host=127.0.0.1
#master-user=masterslave
#master-password=123456
#master-port=3306
#master-connect-retry=60
##同步的數(shù)據(jù)庫
replicate-do-db=usercenter
##replicate-do-db=database2
##被忽略的數(shù)據(jù)庫
replicate-ignore-db=mysql
------這下面的參數(shù)不能加,其實加了不能啟動--------------------
#這個參數(shù)一定要加上,否則不會給更新的記錄些到二進(jìn)制文件里
#log-slave-updates
#是跳過錯誤,繼續(xù)執(zhí)行復(fù)制操作
#slave-skip-errors
完了重啟從數(shù)據(jù)庫。
2設(shè)置同步
MASTER_LOG_FILE為主庫的File,MASTER_LOG_POS為主庫的Position,這兩個參數(shù)必須和主庫當(dāng)前的查詢到的一致。注意主庫每啟動一次,參數(shù)值會不一樣,從庫要相應(yīng)修改參數(shù)。
mysql>stop slave;
mysql>change master to
master_host='127.0.0.1',
master_user='masterslave',
master_password='123456',
master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos=120;
3.開啟從同步:
mysql>start slave;
4.查看狀態(tài):
mysql>show slave status;將內(nèi)容復(fù)制到editplus,看一下
如果Slave_IO_Running、Slave_SQL_Running狀態(tài)為Yes則表明設(shè)置成功。同時配置的描寫的同步數(shù)據(jù)庫與忽略同步的數(shù)據(jù)庫都應(yīng)該正確。
如果為no或參數(shù)不一樣,則需要檢查前面的步驟中是否有錯誤。
如不在一臺機(jī)器上,還要注意看機(jī)器上防火墻設(shè)置是否打開。
如果這里都正確的話,就應(yīng)該沒問題了。主數(shù)據(jù)庫的修改很快就會同步從數(shù)據(jù)庫。