首先說下主從備份的優點:
1. mysql的主從復制的主要優點是同步"備份", 在從機上的數據庫就相當於一個(基本實時)備份庫.
2. 在主從復制基礎上, 通過mysqlproxy可以做到讀寫分離, 由從機分擔一些查詢壓力.
3. 做一個雙向的主從復制, 兩台機器互相為主機從機, 這樣, 在任何一個機器的庫中寫入, 都會"實時"同步到另一台機器, 雙向的優點在於當一台主機發生故障時, 另一台主機可以快速的切換過來繼續服務.
接下來講下具體的實現步驟:
1.修改主數據庫根目錄下的my.ini配置文件,添加server-id=1 設置服務器id,配置需要備份的數據庫(binlog-do-db=庫名),設置不需要備份的數據庫(binlog-ignore-db=庫名) ,開啟二進制日志(log-bin=mysql-bin)然后重啟數據庫
2.將主庫和從庫的數據保持一致,主要實現的方法是
(1)第一種方法將鎖定主表讓數據保持現在狀態,具體操作為以下幾步:
1. MYSQL-A 下執行SQL命令:flush tables with read lock;目的是鎖表
2. MYSQL-B下面執行命令:mysqldump -h10.0.0.2 -uroot -proot virt > var/backup/virtback.sql;備份數據;
3. MYSQL-A下執行SQL命令:unlock tables;解除鎖定。
4. MYSQL-B 執行命令:mysql -uroot -proot virt < var/backup/virtback.sql;還原數據
(2)第二種方法就是使用復制數據,將主庫copy一份到從庫
3.真實操作
主庫: 1. 注冊一個用戶 % 表示所有客戶端都能連
2. 登錄主服務器的mysql,查詢master的狀態 show master status;
從庫: 1.配置從服務器Slave: change master to master_host='192.168.145.222',master_user='mysync',master_password='q123456',
master_log_file='mysql-bin.000004',master_log_pos=308; //注意不要斷開,308數字前后無單引號。
2.start slave; //開啟從服務器復制功能
3.檢查從服務器復制功能狀態 show slave status
紅框標注的值都為YES 說明配置成功。自己可以選擇配置的數據庫表中添加數據進行測試。