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

不同操作系統下的mysql數據庫同步

編輯:MySQL綜合教程

當數據庫的數據量讀寫頻繁的時候,我們就要考慮把數據庫的讀寫分開,以提高數據庫的使用效率,(當然還有其他用處比如,備份數據),這個時候我們就要用到mysql的一個功能,數據庫同步。下面就具體講一下實現方法

一、系統環境

主數據庫(master):

系統:windows

數據庫:MySQL 5.0.51

IP:192.168.1.156

從數據庫(slave):

系統:linux

數據庫:MySQL 5.0.67

IP:192.168.1.154

二、配置參數:

發現網上說,兩個數據庫的配置必須一致,還把兩個配置文件對拷。看起來挺有道理,因為怕部分功能不一致,也有可能導致同步錯誤。但是我的兩個MYSQL的所在系統都不一樣,所以就按照默認的安裝配置了。

數據庫准備:

要同步的數據庫叫 account

那就必須把主服務器上的account和數據完整的導一份 到slave服務器上

且在主服務器上開一個帳戶,允許從服務器訪問。

主數據庫(master)配置:

=============================

修改mysql 的配置文件my.cnf,

找到 server-id 這一行,更改如下

server-id = 1

且增加兩行必要信息:

log-bin           =     d:/log-bin.log #二進制變更日值的存放位置

binlog-do-db =     account  #要同步的數據庫

=======================================

解釋下:Slave上Mysql的Replication工作有兩個線程,I/O thread和SQL thread,I/O 的作用是從master 3306端口上把它的binlog取過來(master在被修改了任何內容之後,就會把修改了什麼寫到自己的binlog等待slave更新),然後寫到本地的relay-log,而SQL thread則是去讀本地的relay-log,再把它轉換成本Mysql所能理解的東西,於是同步就這樣一步一步的完成.
master數據庫的修改僅此一步就OK了

從數據庫(slave)配置:

=====================================

修改 mysql 下的my.cnf

找到 server-id 這一行,更改如下

server-id          = 2  //從數據庫

master-host        = 192.168.1.156

master-user        = lzy

master-password   = lzy

master-port     =  3306

replicate-do-db =  account  //要同步的數據庫


最後,把兩個mysql都重啟動一下。

1、看看剛才設置的日志路徑下有沒有日志生成。

2、在156上添加一條數據,看看從數據庫有沒增加。如果沒有,看看slave數據庫的錯誤日志,根據錯誤信息具體調試下。

=====小插曲=======

配置好同步後,我發覺log-bin的日志位置不好,想換一個地方,於是改到其他盤去了。重啟MYSQL後發現同步不能用了。超級郁悶。於是去看了下mysql的錯誤日志,

“count not find first log file name in binary log in…”

找了半天沒找到原因,忽然發現錯誤日志的同目錄下有個master.info文件,應該是記錄從主服務器取數據的記錄吧。打開看了看是的

14

log-bin.000003

337

192.168.1.156

lzy

lzy

3306

60

0

我把這個文件刪除了,重啟動mysql。

OK了數據同步過來了     

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