文章目錄
- 一、在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;