【MySQL】搭建MySQL的Master/Slave架構

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

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

1、在windows環境下面安裝兩個MySql服務

從mysql官方網站下載mysql,我下載的是5.1.46版。按照windows的嚮導一步一步安裝,安排過程再也不詳述。mysql

安裝完成以後,通常須要簡單的配置,根據你本身的機器配置,從my-huge.ini、my-innodb-heavy-4G.ini、my-large.ini、my-medium.ini、my-small.ini選擇一個合適的配置文件,將文件複製一份,改名爲my.ini,修改裏面的基本配置信息。sql

[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;一下,看是否正常運行。
數據庫

安裝過一個服務以後,就能夠安裝第二個服務了。windows

1、將安裝過的文件,複製一份,複製到合適的位置並改名,以個人爲例,D:\Program Files\MySQL Slave 5.1性能優化

2、修改端口號,basedir、datadir架構

3、經過命令行方式進行D:\Program Files\MySQL Slave 5.1\Bin,建立服務:mysqld --install mysql2編輯器

4、進入註冊表編輯器,找到 HKEY_LOCAL_MACHINE ->SYSTEM->CurrentControlSet->services->mysql2 .編輯ImagePath爲:」"D:\Program Files\MySQL Slave 5.1\bin\mysqld" mysql2」,保存便可。性能

5、在命令提示符下,net start mysql2,便可啓動服務。

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

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

2、搭建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 startlog-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來開啓和關閉同步。

3、MySql其它

看你的mysql如今已提供什麼存儲引擎:mysql> show engines; 
看你的mysql當前默認的存儲引擎:mysql> show variables like '%storage_engine%';
你要看某個表用了什麼引擎(在顯示結果裏參數engine後面的就表示該表當前用的存儲引擎):mysql> show create table 表名; 
鎖表:flush tables with read lock;
相關文章
相關標籤/搜索