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

搭建MySql數據庫的Master/Slave架構

編輯:MySQL綜合教程

隨著訪問量的增加,對於一些比較耗時的數據庫讀取操作,一般采用將寫入與讀取操作分開來緩解數據庫的壓力,數據庫引擎一般采用Master/Slave架構。雖然這種架構不能從根本上解決數據庫的失敗設計,但對於數據庫的性能優化還是可以起到一些的作用的,特別是對於MySql,讀取的時候,沒有像SQL Server的unlock操作。

為了搭建一個Master/Slave環境,由於資源有限,就在本機上安裝了兩個MySql服務,一個用於Master,一個用於Slave同步數據。

一、在windows環境下面安裝兩個MySql服務
從mysql官方網站下載mysql,我下載的是5.1.46版。按照windows的向導一步一步安裝,安排過程不再詳述。

安裝完成之後,一般需要簡單的配置,根據你自己的機器配置,從my-huge.ini、my-innodb-heavy-4G.ini、my-large.ini、my-medium.ini、my-small.ini選擇一個合適的配置文件,將文件復制一份,更名為my.ini,修改裡面的基本配置信息。

[mysqld]basedir=D:\Program Files\MySQL Server 5.1 #MySql安裝路徑datadir=D:\Data\MySQL\data #MySql數據庫存放路徑,我不太喜歡將其存放在MySql安裝路徑中default-character-set=gbk #默認字符集port=3306 #端口號打開MS-DOS窗口,進入DOS環境,切換到"%MySQL_HOME%\bin"目錄
運行: %MySQL_HOME%\bin>mysqld --install mysql,創建mysql服務(去控制面板->服務中驗證)
啟動服務,進入mysql,show databases;一下,看是否正常運行。

安裝過一個服務之後,就可以安裝第二個服務了。

一、將安裝過的文件,復制一份,復制到合適的位置並更名,以我的為例,D:\Program Files\MySQL Slave 5.1

二、修改端口號,basedir、datadir

三、通過命令行方式進行D:\Program Files\MySQL Slave 5.1\Bin,創建服務:mysqld --install mysql2

四、進入注冊表編輯器,找到 HKEY_LOCAL_MACHINE ->SYSTEM->CurrentControlSet->services->mysql2 .編輯ImagePath為:”"D:\Program Files\MySQL Slave 5.1\bin\mysqld" mysql2”,保存即可。

五、在命令提示符下,net start mysql2,即可啟動服務。

注意:如果你安裝的MySql已經有一些數據了,需要將這些數據也拷貝到第二個MySql服務的datadir中。

創建成功後,啟動mysql2服務,進入mysql2(用相同的密碼),驗證是否創建成功。

二、搭建MySql的Master/Slave架構
在Master(Mysql5.1)的數據庫中建立一個備份帳戶,命令如下:

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'localhost' IDENTIFIED BY '123';

Master修改如下(my.ini):

[mysqld] #Master start#日志輸入地址 主要同步使用log-bin=D:\Data\log\Master\log-bin.log#同步數據庫binlog-do-db=renli#主機id 不能和從機id重復server-id=1#Master end

Slave修改如下(my.ini):

Slave修改
#Slave startlog-bin=D:\Data\log\Slave\log-bin.log#從機id,區別於主機idserver-id=2#主機ip,供從機連接主機用master-host=localhost#主機端口master-port=3306#剛才為從機復制主機數據新建的帳號master-user=slave#剛才為從機復制主機數據新建的密碼master-password=123#重試間隔時間10秒master-connect-retry=10#需要同步的數據庫replicate-do-db=renli#啟用從庫日志,這樣可以進行鏈式復制log-slave-updates#從庫是否只讀,0表示可讀寫,1表示只讀read-only=1#Slave end

在Master上面可以通過show master status \G;查看當前Master的狀態
在Slave上面可以通過show slave status \G;查看當前slave的狀態

請避免數據不同步的時候,設置Master/Slave架構。可以通過start slave與stop slave來開啟和關閉同步。

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