程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> redhat下MySQL主從備份

redhat下MySQL主從備份

編輯:MySQL綜合教程

redhat下MySQL主從備份      在一家小公司做Java程序員,除了編代碼,做的事情也很雜,這次有機會接觸到MySQL數據的主從備份,之前部門老大有做過一次主從,也算是有一份check list照做,即使這樣,中間還是出了很多問題,經過幾天的折騰,今天算是把問題解決了,因此決定寫一篇博客記錄一下,方便以後遇上類似的問題的時候查看,也希望能給遇到相同問題的人帶來幫助!     前置條件:兩台DB服務器,MySQL版本都是5.5.29,一個數據庫在用,一個用來備份。     目標:將兩個db做成主從備份,實現自動備份     步驟:1,停掉使用數據庫的程序,以sql的形式備份數據庫並將數據同步到備份數據庫。             2,編輯主數據庫的/etc/my.cnf文件,在mysqld部分添加如下代碼                   Java代碼   server-id = 1 #用來標識主數據庫,如果有多個數據庫做主從,這個數字要唯一    log_bin = /var/log/mysql/mysql-bin.log #確保此文件可寫    read-only =0 #主機,讀寫都可以     binlog-do-db =test #需要備份數據,多個寫多行     binlog-ignore-db=mysql #不需要備份的數據庫,多個寫多行               3,修改了my.cnf文件,重啟主數據庫,service mysql restart             4,創建備份用的數據庫用戶,並給從機授權,這裡直接授權並刷新數據庫權限,MySQL會自動先創建               用戶     Sql代碼   GRANT REPLICATION SLAVE ON *.* TO ‘slave’@’192.168.1.101‘ IDENTIFIED BY ‘123456’;   FLUSH PRIVILEGES;                  5,修改從機my.cnf文件,,在mysqld部分添加如下代碼並重啟MySQL     Xml代碼   server-id = 2     log_bin = /var/log/mysql/mysql-bin.log     replicate-do-db =test #只復制某個庫     replicate-ignore-db=mysql #不復制某個庫                  6,在從機上設置主機的信息,登錄mysql,執行下面的sql語句   mysql>stop slave;   mysql>CHANGE MASTER TO MASTER_HOST=’192.168.1.100’, MASTER_USER=’slave’, MASTER_PASSWORD=’123456‘,    MASTER_LOG_FILE=’mysql-bin.0xx‘, MASTER_LOG_POS=33421;   mysql>start slave;               7,上面代碼中的Master_host為主機的地址,master_user和pwd分別是主機上創建的用於備份的slave用戶和對應的密碼,master_log_file和log_pos非常重要,設置錯了就很容易出現1236的錯誤 Sql代碼   Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'              8,因此為了避免出錯,在執行步驟6之前,先登錄主機MySQL,執行下面的sql語句查看主機的log file和log pos,然後在步驟6執行sql語句的時候將對應的信息寫對 Sql代碼   show master status;              9,上面的步驟完成之後,主從就算是配置好了,在從機上可以使用show slave status sql命令查看slave的狀態,如果slave_io_running和slave_sql_running都顯示yes表示成功了!可以在主數據庫上執行更新和插入的操作,然後到從機數據庫中驗證!              ps:最初是5.5.29版本,使用了上面的方法配置,沒能成功,網上也找了很多原因,都以失敗告終,今天將數據庫版本替換成5.6.10之後使用上面的方法才配置成功的。先將數據備份好 ,rpm -qa|grep -i mysql查看已經安裝的mysql,然後使用rpm  -e ***mysql的方法卸載mysql,清空/var/lib/mysql下的binlog和錯誤日志文件,清空後注意要編輯mysql-bin.index文件,將裡面對應的信息刪除,然後保存,安裝時可以將原來配置好的my.cnf文件移走,等安裝成功後再覆蓋回來。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved