實例:準備兩臺虛擬機,系統CentOS6.5 mysql免編譯源碼包
以master和slave命名兩臺主機;
master:192.168.3.116
slave:192.168.3.251 (地址請根據實際情況配置)
mysql包的下載及安裝詳見:http://chinawu.blog.51cto.com/10692884/1739296
編輯配置文件vim /etc/my.cnf
master:
server-id = 1
log-bin=mysql.bin(自定義)
binlog-do-db=test(對test數據庫做主從備份)
保存退出,重啓數據庫 service mysqld restart
進入數據庫 mysql -uroot -p
授權從庫權限
mysql>grant replication slave on *.* to 'repl'@'192.168.3.251(從庫IP)' identified by '123456'
從庫備份數據庫就要訪問主庫,授權的作用就是給予從庫權限,從庫使用repl爲用戶名,123456位密碼,訪問主數據庫
mysql>flush tables with read lock;鎖上數據表,不讓寫入,從此節點開始備份
mysql>show master status;
得到要備份的當前節點;
slave:
server-id = 2(與master的值不同即可)
log-bin=mysql.bin(自定義)
binlog-do-db=test(對test數據庫做主從備份)
進入數據庫:mysql -uroot -p
mysql>slave stop;
mysql> change master to master_host='192.168.3.116(主IP)',master_port=3306,master_user='repl',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=264;
其中master_log_file和master_log_pos爲主show master status得到的數據
mysql>slave start;
並在主庫中把表解鎖,unlock tables;
從庫中mysql>show slave status\G查看狀態;當出現
兩個YES表示主從數據庫搭建成功;
測試:在主test中創建表,刪除表,查看從庫中db1表的變化情況。
注:在做主從之前,兩臺主機上的數據庫信息應一樣,
先備份主要同步的數據庫mysqldump -uroot -p db1 > 1.sql
拷貝到從上 scp 命令(兩臺主機都要yum 安裝scp纔可使用)
從上還原主的數據庫 mysql -uroot -p < 1.sql
對數據庫操作時,要先停掉從庫,slave stop 操作完在開啓,否則會同步報錯;