項(xiàng)目需要,自己找了些資料和親手配置過后;得出的經(jīng)驗(yàn)分享。
(1)主服務(wù)器
修改配置文件/etc/my.cnf(my.ini)
[mysqld]
# mysql-bin是log文件的前綴,也可以使用其它的名字,比如服務(wù)器名
# 如果不帶路徑,會(huì)把log文件寫到`/var/lib/mysql`下
log-bin=mysql-bin
# serverid在一個(gè)同步體系中必須是唯一的,大于等于1且小于2^32-1的整數(shù)
server-id=1
binlog-do-db = 數(shù)據(jù)庫名 (你要備份的數(shù)據(jù)庫)
binlog-ignore-db = 數(shù)據(jù)庫名 (你不需要備份的數(shù)據(jù)庫)
#以上兩個(gè)都不選,備份全部
#如果使用InnoDb,為了保證穩(wěn)定,還應(yīng)設(shè)置如下兩行:
innodb_flush_log_at_trx_commit=1
sync_binlog=1
#并且確保沒有設(shè)置skip-networking,禁用網(wǎng)絡(luò)自然無法同步。但是,
#innodb_flush_log_at_trx_commit=1在某些服務(wù)器上會(huì)導(dǎo)致寫數(shù)據(jù)速度急劇下降,
#可嘗試調(diào)整為2。
#自己手動(dòng)添加,并重啟mysql服務(wù)器
[可選操作添加賬戶]
#設(shè)置賬戶步驟:
#登錄mysql主服務(wù)器,
[root@localhost ~]# mysql -uroot –p123456 登錄mysql
#這里需要指明一下啊 這個(gè)123456是我的mysql的密碼
#添加一個(gè)叫做beifen的用戶,并授權(quán)給從服務(wù)器
mysql> grant replication slave on *.* to 'beifen'@'192.168.1.2' identified by '123';
#創(chuàng)建 beifen用戶,密碼設(shè)置為123 并授權(quán)給192.168.1.2(ip為從機(jī)ip)使用。
mysql->SHOW MASTER STATUS; #查看信息并記下File和Position的值,
#這個(gè)在配置從數(shù)據(jù)庫的時(shí)候用的到
(2)從服務(wù)器my.cnf設(shè)置(如果需要雙向主,除server-id不一樣之外,其他配置和主服務(wù)器一樣)
server-id是必須設(shè)置的,binlog不用開。
修改配置文件/etc/my.cnf(my.ini)
將service-id=1修改為server-id=2
并重啟mysql服務(wù)器并登錄
[如果有數(shù)據(jù)先處理數(shù)據(jù)]
(有人說在導(dǎo)入數(shù)據(jù)的時(shí)候執(zhí)行 mysql > stop slave; 具體沒測(cè)試)
處理數(shù)據(jù)方法:
FLUSH TABLES WITH READ LOCK; 1鎖住主服務(wù)器
2 從主服務(wù)器中導(dǎo)出數(shù)據(jù),
3 導(dǎo)入從服務(wù)器
UNLOCK TABLES; 4解鎖
#設(shè)置主從關(guān)系(也可以在服務(wù)器使用,表示雙向)
mysql->change master to master_host='192.168.1.1', (主服務(wù)器IP)
master_user='beifen',master_password='123',
master_log_file='mysql-bin.000001',(主服務(wù)器查詢出file值)
master_log_pos=107;(主服務(wù)器查詢出Position值)
啟動(dòng)slave同步
mysql > start slave;
#檢查主從同步,如果您看到Slave_IO_Running和Slave_SQL_Running均為Yes,
#則主從復(fù)制連接正常。
mysql > show slave status\G