首先先找到my.ini這個配置檔,以我本機所裝的mysql5.0.45來說是放在安裝目錄下,一點進去就可以看到了。
如果沒有看到這個配置檔的話,在同樣的位置有my-small.ini、my-medium.ini 、my-large.ini 、my-huge.ini、my-innodb-heavy-4G.ini 五個檔案,
內容的設定項目都大同小異,主要差別是針對主機配置記憶體的大小。如果是在本機先測試的話,選擇 my-medium.ini 就可以了,配置記憶體是 32M - 64M。
將所選擇的檔案copy並更名為my.ini,並先將Master及Slave資料庫都先關閉。
Master設置
何謂Master?
ex : Server A的DB要同步 Server B的DB資料,也就是B的DB資料會複製至A的DB,所以B即為Master,A為Slave。
1.打開my.ini,在[mysqld]底下增加
server-id=1
此id不能重覆,確認檔案裡沒有再設定其他一樣的server-id
也不能與其他機器相同
log-bin
開啟 Binary Log
MySQL 的 Binary Log 會將所有對於資料庫的修改操作全部記錄起來,而 Slave 與 Master 之間進行資料同步的方式很簡單,
就是 Slave 會把 Master Server 的 Binary Log 拿過來執行,也就是說 Slave Server 會 "重做" 在 Master Server 上發生的各種修改操作。
因此 Master Server 勿必要開啟 Binary Log 功能,否則 Master/Slave 架構無法運作。
*補充的變數(變數還挺多的 只補充我所了解的)
binlog-do-db=db name //設定可同步的db
binlog-ignore-db=db name //設定不同步的db
2.開啟資料庫後,建立Replication Slave 權限的帳號 :
GRANT REPLICATION SLAVE ON *.* TO 'user'@'slaver_ip' IDENTIFIED BY 'PASSWORD';
此帳號主要是給Slave來做資料同步用,給予REPLICATION的權限,slaver_ip為該server的ip,如不限定ip的話,可以改為%。
3.以剛建立的使用者來登入試試,登入完成後輸入show master status;指令,會出現下面畫面 :

將File及Position記下來,設定Slave時會用到。
Slave設置
1.一樣打開my.ini,在[mysqld]底下增加
server-id=2
不能與其它機器相同
log-bin
*補充的變數(變數還挺多的 只補充我所了解的) replicate-do-db=db name //預作同步資料庫
replicate-do-table=table name //預作同步的資料表
2.啟動資料庫並用root登入後,輸入 CHANGE MASTER TO
MASTER_HOST='192.168.11.123',
MASTER_USER='max',
MASTER_PASSWORD='12345',
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS=98;
藍色部分就要用到剛才 Master 抄下來的值
然後再輸入start slave;來讓資料的同步開始執行。
最後輸入show slave status;來看看運行的狀況如何, Slave_IO_Running: Yes
Slave_SQL_Running: Yes
這兩個屬性如為Yes則表示同步正常的在運作。
3.接下來所有在Master所執行的動作,全都會被同步至Slave,可以利用工具來測試一下。
就是 Slave 會把 Master Server 的 Binary Log 拿過來執行,也就是說 Slave Server 會 "重做" 在 Master Server 上發生的各種修改操作。
因此 Master Server 勿必要開啟 Binary Log 功能,否則 Master/Slave 架構無法運作。
*補充的變數(變數還挺多的 只補充我所了解的)
binlog-do-db=db name //設定可同步的db
binlog-ignore-db=db name //設定不同步的db
2.開啟資料庫後,建立Replication Slave 權限的帳號 :
GRANT REPLICATION SLAVE ON *.* TO 'user'@'slaver_ip' IDENTIFIED BY 'PASSWORD';
此帳號主要是給Slave來做資料同步用,給予REPLICATION的權限,slaver_ip為該server的ip,如不限定ip的話,可以改為%。
3.以剛建立的使用者來登入試試,登入完成後輸入show master status;指令,會出現下面畫面 :

將File及Position記下來,設定Slave時會用到。
Slave設置
1.一樣打開my.ini,在[mysqld]底下增加
server-id=2
不能與其它機器相同
log-bin
*補充的變數(變數還挺多的 只補充我所了解的) replicate-do-db=db name //預作同步資料庫
replicate-do-table=table name //預作同步的資料表
2.啟動資料庫並用root登入後,輸入 CHANGE MASTER TO
MASTER_HOST='192.168.11.123',
MASTER_USER='max',
MASTER_PASSWORD='12345',
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS=98;
藍色部分就要用到剛才 Master 抄下來的值
然後再輸入start slave;來讓資料的同步開始執行。
最後輸入show slave status;來看看運行的狀況如何, Slave_IO_Running: Yes
Slave_SQL_Running: Yes
這兩個屬性如為Yes則表示同步正常的在運作。
0 意見:
張貼留言