mysql_5.5.48主從配置

大型網站爲了軟解大量的併發訪問,除了在網站實現分佈式負載均衡,遠遠不夠。到了數據 業務層、數據訪問層,如果還是傳統的數據結構,或者只是單單靠一臺服務器扛,如此多的數據庫連接操作,數據庫必然會崩潰,數據丟失的話,後果更是 不堪設想。這時候,我們會考慮如何減少數據庫的聯接,一方面採用優秀的代碼框架,進行代碼的優化,採用優秀的數據緩存技術如:memcached,如果資 金豐厚的話,必然會想到假設服務器羣,來分擔主數據庫的壓力。Ok切入今天微博主題,利用MySQL主從配置,實現讀寫分離,減輕數據庫壓力。

概述:搭設一臺Master服務器(win7系統,Ip192.168.1.4),搭設兩臺Slave服務器(虛擬機——兩臺CentOS   192.168.248.128,192.168.248.129

從數據庫版本一定要高於等於主數據庫的版本

原理:主服務器(Master)負責網站NonQuery操作,從服務器負責Query操作,用戶可以根據網站功能模特性塊固定訪問Slave服務 器,或者自己寫個池或隊列,自由爲請求分配從服務器連接主從服務器利用MySQL的二進制日誌文件,實現數據同步二進制日誌由主服務器產生,從服務器 響應獲取同步數據庫

1、配置Master主服務器

1)在Master MySQL上創建一個用戶‘yxue,並允許其他Slave服務器可以通過遠程訪問Master,通過該用戶讀取二進制日誌,實現數據同步。

mysql>create user yxue; //創建新用戶

//yxue用戶必須具有REPLICATION SLAVE權限,除此之外沒有必要添加不必要的權限,密碼爲root。說明一下192.168.1.%,這個配置是指明yxue用戶所在服務器,這裏%是通配符,表示192.168.1.0-192.168.1.255的Server都可以以yxue用戶登陸主服務器。當然你也可以指定固定Ip。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'yxue'@'192.168.1.%' IDENTIFIED BY 'root';

//使修改生效
mysql>FLUSH PRIVILEGES;

2)找到MySQL安裝文件夾修改my.Ini文件。mysql中有好幾種日誌方式,這不是今天的重點。我們只要啓動二進制日誌log-binok

 [mysqld]下面增加下面幾行代碼

server-id=1   #設置服務器id,爲1表示主服務器

log-bin=master-bin  #啓動MySQ二進制日誌系統

log-bin-index=master-bin.index

binlog-do-db=cjia_db #需要同步的數據庫名,如果有多個數據庫,可重複此參數,每個數據庫一行
binlog-ignore-db=mysql   #不同步mysql系統數據庫

3)重啓MySQL服務 , 查看日誌

mysql> SHOW MASTER STATUS \G;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 | 1285 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

注意:這裏記住File的值:master-bin.000001和Position的值:1285,後面會用到。

2Slave從服務器(CentOS

1)找到MySQL安裝文件夾修改etc/my.cnf文件,vim my.cnf,[mysqld]部分添加下面內容

server-id=2   #其值爲2,表示爲從數據庫
log-bin=mysql-bin  #啓動MySQ二進制日誌系統replicate-do-db=cjia_db   #需要同步的數據庫名,如果有多個數據庫,可重複此參數,每個數據庫一行
replicate-ignore-db=mysql   #不同步mysql系統數據庫
:wq!    #保存退出

(2)重啓MySQL.注意:MySQL 5.1.7版本之後,已經不支持把master配置屬性寫入my.cnf配置文件中了,只需要把同步的數據庫和要忽略的數據庫寫入即可。

(3)運行下列命令

mysql -uroot -p #進入MySQL控制檯,輸入密碼進入。
slave stop;   #停止slave同步進程
CHANGE MASTER TO MASTER_HOST='192.168.1.4',MASTER_PORT=3306,MASTER_USER='yxue',MASTER_PASSWORD='root',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=1285;    #執行同步語句
slave start;    #開啓slave同步進程

(4)SHOW SLAVE STATUS \G;   #查看slave同步信息

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上這兩個參數的值爲Yes,即說明配置成功!

(5)重啓MySQL.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章