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

MySQL數據庫同步的實現

編輯:MySQL綜合教程

以下的文章主要向大家介紹的是MySQL數據庫同步的實際操作步驟以及對實現MySQL數據庫同步的實際應用代碼與其在實際操作過程中值得我們大家注意的相關事項的描述,希望會給你帶來一些幫助在此方面。

在網上我找了一下,大家都說的是這樣:“ MySQL從3.23.15版本以後提供數據庫復制功能。利用該功能可以實現兩個數據庫同步,主從模式,互相備份模式的功能。

MySQL數據庫同步復制功能的設置都在MySQL的設置文件中體現。MySQL的配置文件一般是my.cnf)

在unix環境下在/etc/MySQL/my.cnf 或者在MySQL用戶的home目錄下面的my.cnf.

window環境中,如果c:根目錄下有my.cnf文件則取該配置文件。當運行MySQL\bin\winMySQLadmin.exe工具時候,該工具會把c:根目錄下的my.cnf 命名為mycnf.bak。並在winnt目錄下創建my.ini。MySQL服務器啟動時候會讀該配置文件。所以可以把my.cnf中的內容拷貝到my.ini文件中,用my.ini文件作為MySQL

服務器的配置文件。

設置方法:

設置范例環境:

操作系統:window2000 professional

MySQL:4.0.4-beta-max-nt-log

A ip:10.10.10.22

B ip:10.10.10.53

A:設置

1.增加一個用戶最為同步的用戶帳號:

GRANT FILE ON *.* TO backup@'10.10.10.53' IDENTIFIED BY ‘1234’

2.增加一個數據庫作為同步數據庫:

create database backup

B:設置

1.增加一個用戶最為同步的用戶帳號:

GRANT FILE ON *.* TO backup@'10.10.10.22' IDENTIFIED BY ‘1234’

2.增加一個數據庫作為MySQL數據庫同步:

  1. create database backup 

主從模式:A->B

A為master

修改A MySQL的my.ini文件。在MySQLd配置項中加入下面配置:

  1. server-id=1 
  2. log-bin 

#設置需要記錄log 可以設置log-bin=c:\MySQLbak\MySQLlog 設置日志文件的目錄,

#其中MySQLlog是日志文件的名稱,MySQL將建立不同擴展名,文件名為MySQLlog的幾個日志文件。

binlog-do-db=backup #指定需要日志的數據庫

重起數據庫服務 

用show master status 命令看日志情況。

B為slave

修改B MySQL的my.ini文件。在MySQLd配置項中加入下面配置:

server-id=2

master-host=10.10.10.22

master-user=backup #MySQL數據庫同步用戶帳號

master-password=1234

master-port=3306

master-connect-retry=60 預設重試間隔60秒

replicate-do-db=backup 告訴slave只做backup數據庫的更新

重起數據庫 

用show slave status看同步配置情況。

注意:由於設置了slave的配置信息,MySQL在數據庫目錄下生成master.info

所以如有要修改相關slave的配置要先刪除該文件。否則修改的配置不能生效。

雙機互備模式

如果在A加入slave設置,在B加入master設置,則可以做B->A的同步。

在A的配置文件中 MySQLd 配置項加入以下設置:

  1. master-host=10.10.10.53  
  2. master-user=backup 
  3. master-password=1234 
  4. replicate-do-db=backup 
  5. master-connect-retry=10 

在B的配置文件中 MySQLd 配置項加入以下設置:

  1. log-bin=c:\MySQLlog\MySQLlog  
  2. binlog-do-db=backup 

注意:當有錯誤產生時*.err日志文件。同步的線程退出,當糾正錯誤後要讓MySQL數據庫同步機制進行工作,運行slave start

重起AB機器,則可以實現雙向的熱備。

測試:

向B批量插入大數據量表AA1872000)條

A數據庫每秒鐘可以更新2500條數據。”

但是我的MySQL是5.1.30-win32的,安裝後在C:\Program Files\MySQL\MySQL Server 5.1這個文件夾裡根本就沒有my.cnf,只有my.ini,有些說要用winMySQLadmin.exe壓運行這個文件後就會在c盤的根目錄下有一個mycnf.bak文件,同時在C:\WINDOWS文件夾裡生成一個my.ini文件。但是我安裝了並運行了winMySQLadmin.exe之後,在c盤的根目錄下根本就沒有一個mycnf.bak文件,我在整個電腦裡都沒有找到這個文件。不知道我哪裡沒有做對,忘高手們指點一二。幫助後給高分。

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