mysql中實現master-slave同步: mysql
第一步:分別在兩臺機子上各裝一個mysql (本人測試機系統爲unbutu,mysql5.5),如只有一臺機器,需使mysql的端口不一樣(3306,3307)。 sql
第二步:找到mysql 的my.cnf文件。 數據庫
$cd /etc/mysql 進入該目錄。 vim
$ vim my.cnf 如是隻讀,且不容許修改。需用$ sudo vim my.cnf 服務器
第三步:修改my.cnf 中的配置項: 網絡
1 需作以下操做: 測試
將bind-address=127.0.0.1 改成 bind-address=0.0.0.0 編碼
將#server-id=1 spa
#log_bin=/var/log/mysql/mysql-bin.log rest
的註釋(#)去掉。
添加:character-set-server=utf-8 #保證編碼一致。
填加完成後,保存並退出便可。
第四步:
用root權限登陸並建立slave數據庫服務器用戶:
$mysql -uroot -p
mysql>grant replication slave,replication client on *.* to liang@'192.168.10.21' indntified by 'liang';
mysql>grant replicatin slave on *.* to liang@'192.168.10.21' indntified by 'liang';
第五步:重啓mysql服務。
$ sudo /etc/init.d/mysql restart #如不能正常啓動,請檢查my.cnf配置項以及mysql 的錯誤日誌。
錯誤日誌位置:/var/log/mysql/error.log
到此已將master配置完畢。
slave配置。
第六步:修改slave的my.cnf配置文件。
以下:
bind-address=0.0.0.0
server-id = 2
master-host = 192.168.10.24
master-user = liang
master-password = liang
master-port = 3306
log_bin = /var/log/mysql/mysql-bin.log
log-slave-updates
skip-slave-start
character-set-server=utf8
保存並退出.
第七步:重啓slave的mysql服務器(同第五步)
本人在重啓時出現錯誤,不能啓動mysql.經查日誌發現:以下錯誤(暫略)因爲錯誤日誌不在本機。之後補上,嘿嘿。
故將配置改成以下:
server-id = 2
#master-host = 192.168.10.24
#master-user = liang
#master-password = liang
#master-port = 3306
log_bin = /var/log/mysql/mysql-bin.log
log-slave-updates
skip-slave-start
character-set-server=utf8
保存並重啓mysql,ok.
進入myslq,並在mysql中運行:
slave start;
第八步:在master中執行:
mysql>show master status\G;
顯示內容爲以下:
第九步:在slave中,運行以下命令:
mysql>change master to master_host='192.168.10.24', master_user='liang', master_password='liang', master_log_file='mysql-bin.000007', master_log_pos=170;
其中master_log_file,master_log_pos 爲第八步中所顯示的內容 .
mysql>slave start;
第十步:在master的中執行以下命令:
mysql>show slave status\G;
請查看Slave_IO_Running:YES
Slave_SQL_Running:YES
ok ,配置成功。
請出現Slave_IO_Running:Connectiong,請查看下面的錯誤信息或查看日誌文件。
第十一步:測試
在主數據庫中建立數據庫:
mysql>create database ccc;
在slave中查看,若有ccc數據庫,則說明同步成功。
同時可測建立表,修改表,添加記錄等。一切OK.
最後謝謝網絡上的朋友。在大家的幫助下,順得完成。
如需配置dual-master 可參考以下連接: