搭建MySql的Master/Slave架構

來源:互聯網
上載者:User
文章目錄
  • 一、在windows環境下面安裝兩個MySql服務
  • 二、搭建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 start
log-bin=D:\Data\log\Slave\log-bin.log

#從機id,區別於主機id
server-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來開啟和關閉同步。

三、MySql其它
看你的mysql現在已提供什麼儲存引擎:mysql> show engines; 
看你的mysql當前預設的儲存引擎:mysql> show variables like '%storage_engine%';
你要看某個表用了什麼引擎(在顯示結果裡參數engine後面的就表示該表當前用的儲存引擎):mysql> show create table 表名;
鎖表:flush tables with read lock;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.