主從模式:
主伺服器server1: 192.168.1.20 Mysql 5.0 需要備份的資料庫 mydb
從伺服器server2: 192.168.1.22 Mysql 6.0
1.備份現有資料:
最好先停止mysql service
使用[MysqlHome]:\bin\mysqldumple.exe工具 將現有資料備份成一個sql檔案:
d:\>cd [MysqlHome]
[MysqlHome]>cd bin
bin:\>mysqldumple -u root -p mydb> d:\mydb.sql //有自己寫的預存程序或函數時加上--routines 選項,否則預設不備份。另:在語句後面加';' 會導致db not found 報錯。
斷行符號輸入root使用者的密碼後資料庫就會被匯出到d:\mydb.sql 中
將mydb.sql COPY到server2 的D:\ 下
在mysql 下運行如下命令:
mysql> source mydb.sql
運行完成後資料就會被匯入到server2的mysql 中
2.授權:
server1上:
mysql>grant replication slave on *.* to user@'192.168.1.22' identified by 'pass' 註:6.0 中的使用者要加引號 'user'@''192.168.1.22'
授權server2 使用使用者名稱user 密碼pass 串連到server1進行資料備份
3.server1配置修改:
資料庫的備份是基於日誌複製機制。
server-id=1 //設定主伺服器的編號
log-bin =[log-name] //設定記錄檔
binlog-do-db=[db-name] //記錄日誌的資料庫
binlog-ignore-db=[db1,db2] //不記錄日誌的資料庫
配置修改完成後重新啟動service
4.server2中的配置:
修改my.ini設定檔
在[mysqld] 後面添加如下兩行
server-id=2
replicate-do-db = mydb
在mysql client中運行如下命令:
mysql> change master to master_host='192.168.1.20',master_user='user',master_password='pass',master_log_file='[log-name]',master_log_pos=[pos-val];
[log-name] 和[pos-val] 可以在server1中使用 show master status查看。
重啟service