廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 7787 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
月光 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
社區建設獎
頭銜:看我代替月亮懲罰你!看我代替月亮懲罰你!
版主
級別: 版主 該用戶目前不上站
版區: Unix-like, 網站架設
推文 x42 鮮花 x565
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x1
[SQL][教學] 實做 MySQL Master-Master Replication 同步
今天無聊實做了 MySQL 資料庫同步化,那可以先看看 MySQL Master Slave Replication,中文網站可以上 google 查詢或者是看看這一篇:MySQL 設定 Replication (Master – Slave),基本上設定還蠻容易的,如果會 Master 同步到 Slave 的話,那 MySQL Master-Master 只是在用相同的方法在做一遍,如果不懂 MMM 的可以先參考這一篇:MySQL Master-Master Replication Manager(1) – 簡介,這篇寫的很清楚,今天看了文章,我實做起來,遇到一些問題,其實還蠻奇怪的,所以底下就來紀錄一下步驟,順便也說明一下。

實做兩台 Ubuntu 機器:
db1:192.168.1.1
db2:192.168.1.2

先設定 db1:
目前我都是在 Ubuntu 7.10 底下實做的,那基本上只要有支援 MySQL 的 Linux 或者 FreeBSD 機器都可以實做這個方法:

步驟一:先修改 my.cnf 這個檔案:
FreeBSD 的話在:/var/db/mysql/my.cnf
Ubuntu:/etc/mysql/my.cnf
有的版本是在 /etc/my.cnf 所以不太一定,請依照自己的作業系統
修改:

#
# bind-address 請 mark 起來,因為我們必須讓 MySQL Listen 各個不同的 IP Address
#bind-address         = 127.0.0.1
#
# server id 請記得每台機器都設定不同喔
#
server-id           = 1
log_bin             = /var/log/mysql/mysql-bin.log

步驟一的部份也請先在 db2 的機器先設定一次,然後重新啟動 mysql
步驟二:設定 mysql 權限

mysql -u root -p
#
# 先設定 replication 這個帳號密碼是 slave 這個可以自己改掉
#
mysql> GRANT replication slave ON *.* TO 'replication'@'%' IDENTIFIED BY 'slave';
#
# 這個是官方的寫法,可以按照這底下去寫就可以了
#
mysql> CHANGE master TO master_host='192.168.1.2', master_port=3306, master_user='replication', master_password='slave';
#
# 底下是 Master 機器的 bin log file
# master_log_file='mysql-bin.000004',
# master_log_pos=98;
# 可以利用 SHOW MASTER STATUS; 來取得這兩個的值
mysql> CHANGE master TO master_host='192.168.1.2', master_port=3306, master_user='replication', master_password='slave', master_log_file='mysql-bin.000004', master_log_pos=98;

先到 db2 執行 SHOW MASTER STATUS; 會得到底下結果

+------------------+----------+--------------+------------------+
| File         | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |     189 |           |             |
+------------------+----------+--------------+------------------+

那這樣就可以知道
master_log_file=’mysql-bin.000001′,
master_log_pos=189;

步驟三:測試觀看 mysql slave
重新啟動 mysql
/etc/init.d/mysql restart
#
# 啟動 slave
#
mysql> START slave;
#
# 觀看 slave 狀態
#
mysql> show slave status \G;



請注意下面這兩行必須為 YES
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

這樣才算代表成功了,不然就是失敗的。

先設定 db2:
步驟一:先修改 my.cnf 這個檔案:
FreeBSD 的話在:/var/db/mysql/my.cnf
Ubuntu:/etc/mysql/my.cnf
有的版本是在 /etc/my.cnf 所以不太一定,請依照自己的作業系統
修改:
#
# bind-address 請 mark 起來,因為我們必須讓 MySQL Listen 各個不同的 IP Address
#bind-address         = 127.0.0.1
#
# server id 請記得每台機器都設定不同喔
#
server-id           = 1
log_bin             = /var/log/mysql/mysql-bin.log

步驟二:設定 mysql 權限
mysql -u root -p
#
# 先設定 replication 這個帳號密碼是 slave 這個可以自己改掉
#
mysql> GRANT replication slave ON *.* TO 'replication'@'%' IDENTIFIED BY 'slave';
#
# 這個是官方的寫法,可以按照這底下去寫就可以了
#
mysql> CHANGE master TO master_host='192.168.1.1', master_port=3306, master_user='replication', master_password='slave';
#
# 底下是 Master 機器的 bin log file
# master_log_file='mysql-bin.000004',
# master_log_pos=98;
# 可以利用 SHOW MASTER STATUS; 來取得這兩個的值
mysql> CHANGE master TO master_host='192.168.1.1', master_port=3306, master_user='replication', master_password='slave', master_log_file='mysql-bin.000004', master_log_pos=98;

步驟三:測試觀看 mysql slave
重新啟動 mysql
/etc/init.d/mysql restart
#
# 啟動 slave
#
mysql> START slave;
#
# 觀看 slave 狀態
#
mysql> show slave status \G;
如果遇到
Slave_IO_Running: no
Slave_SQL_Running: no

這樣的話請依照下面步驟:

#
# 停止跟清除 SLAVE
#
mysql> STOP SLAVE;
mysql> RESET SLAVE;
#
# 停止 mysql
#
/etc/init.d/mysql stop
#
# 刪除 bin log 檔案
#
rm -rf /var/log/mysql/mysql-bin.*
#
# 啟動 mysql
#
/etc/init.d/mysql start
#
# 在設定一次 master ip 資訊
#
mysql> change master to master_host='192.168.1.1', master_port=3306, master_user='replication', master_password='slave';
#
# 啟動 slave
#
mysql> START SLAVE;



月光論壇
http://bbs.dj...com/


===================================
贊助本站 -- 刊登廣告 -- 物超所值虛擬主機租用
獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2010-07-22 19:58 |
shing3728
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

學習中..
感謝分享!!!


獻花 x0 回到頂端 [1 樓] From:APNIC | Posted:2010-09-11 13:58 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.013187 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言