主從模式:
主服務器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