基于Mycat的MySQL主從讀寫分離配置詳解與示例_正能量_20150721_第1頁
基于Mycat的MySQL主從讀寫分離配置詳解與示例_正能量_20150721_第2頁
基于Mycat的MySQL主從讀寫分離配置詳解與示例_正能量_20150721_第3頁
基于Mycat的MySQL主從讀寫分離配置詳解與示例_正能量_20150721_第4頁
基于Mycat的MySQL主從讀寫分離配置詳解與示例_正能量_20150721_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于Mycat開源數(shù)據(jù)庫中間件MySQL數(shù)據(jù)庫主從讀寫分離配置詳解與示例參考文檔:Mycat權(quán)威指南王金劍本文說明:根據(jù)心跳問題heartbeat bug #393,做了修正,請使用附件中的Mycat安裝包:Mycat-Server-1.4-RC-Linux-RW-20150721.tar.gz或者將附件中的Mycat-server-1.4-RC.jar 更新到Mycat安裝目錄下的lib目錄,替換原文件一、MySQL主服務(wù)器Master 配置1、修改主服務(wù)器配置: #vi /etc/f binlog-do-db=db1binlog-do-db=db2binlog-do-db=db3binlog-ignore-db = mysqllog-bin=mysql-bin #啟用二進制日志server-id=158 #服務(wù)器唯一ID,一般取IP最后一段2、重啟MySQL /etc/init.d/mysql restart3、建立帳戶并授權(quán)slave: #/usr/local/mysql/bin/mysql -uroot -p123456 mysqlGRANT FILE ON *.* TO backup% IDENTIFIED BY 123456; mysqlGRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to backup% identified by 123456; #一般不用root帳號,“%”表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如26,加強安全。 刷新權(quán)限 mysql FLUSH PRIVILEGES; 查看mysql現(xiàn)在有哪些用戶 mysqlselect user,host from mysql.user;4、登錄主服務(wù)器的mysql,查詢master的狀態(tài) mysql show master status;+-+-+-+-+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+-+-+-+-+| mysql-bin.000010 | 106 | db1,db2,db3 | mysql | +-+-+-+-+ Master 重啟后會修改mysql-bin(序號加1)二、MySQL從服務(wù)器Slave 配置1、修改從服務(wù)器配置: #vi /etc/freplicate-do-db=db1replicate-do-db=db2replicate-do-db=db3replicate-ignore-db=mysqlmaster-connect-retry=60server-id=78master-host=58master-user=backupmaster-password=123456master-port=3306master-connect-retry=60#log-slave-updatesskip-slave-start #防止復(fù)制隨著mysql啟動而自動啟動。即slave端的mysql服務(wù)重啟后需手動來啟動主從復(fù)制(slave start),最好加上,slave端數(shù)據(jù)庫服務(wù)重啟后手動啟動slave比較安全2、重啟MySQL/etc/init.d/mysql restart3、登錄mysql并停止slave服務(wù) # cd /usr/local/mysql/bin/# ./mysql -uroot p123456 或# /usr/local/mysql/bin/mysql -uroot p123456mysqlslave stop; 設(shè)置與master服務(wù)器相關(guān)的配置參數(shù)mysqlchange master to master_host=58, master_user=backup, master_password=123456,MASTER_LOG_FILE=mysql-bin.000015,MASTER_LOG_POS=106;注意:Master重啟后slave 要修改MASTER_LOG_FILE,106無單引號。啟動從服務(wù)器復(fù)制功能 Mysqlstart slave; ERROR 1201 (HY000):Could not initialize master info structure的問題解決方案是:運行命令 stop slave;成功執(zhí)行后繼續(xù)運行 reset slave;4、檢查從服務(wù)器復(fù)制功能狀態(tài)mysql show slave statusG以下兩個參數(shù)必須為YES: Slave_IO_Running: Yes Slave_SQL_Running: Yes返回如下:* 1. row * Slave_IO_State: Waiting for master to send event Master_Host: 58 Master_User: backup Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000010 Read_Master_Log_Pos: 106 Relay_Log_File: bogon-relay-bin.000002 Relay_Log_Pos: 251 Relay_Master_Log_File: mysql-bin.000010 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: db1,db2,db3 Replicate_Ignore_DB: mysql Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 106 Relay_Log_Space: 406 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: 1 row in set (0.00 sec)三、數(shù)據(jù)庫中間件Mycat配置1、不使用Mycat托管MySQL主從服務(wù)器,簡單使用如下配置select user()2、Mycat 1.4 支持MySQL主從復(fù)制狀態(tài)綁定的讀寫分離機制,讓讀更加安全可靠,配置如下:show slave status(1) 設(shè)置 balance=1與writeType=0Balance參數(shù)設(shè)置:1. balance=“0”, 所有讀操作都發(fā)送到當(dāng)前可用的writeHost上。2. balance=“1”,所有讀操作都隨機的發(fā)送到readHost。3. balance=“2”,所有讀操作都隨機的在writeHost、readhost上分發(fā)WriteType參數(shù)設(shè)置:1. writeType=“0”, 所有寫操作都發(fā)送到可用的writeHost上。2. writeType=“1”,所有寫操作都隨機的發(fā)送到readHost。3. writeType=“2”,所有寫操作都隨機的在writeHost、readhost分上發(fā)。 “readHost是從屬于writeHost的,即意味著它從那個writeHost獲取同步數(shù)據(jù),因此,當(dāng)它所屬的writeHost宕機了,則它也不會再參與到讀寫分離中來,即“不工作了”,這是因為此時,它的數(shù)據(jù)已經(jīng)“不可靠”了?;谶@個考慮,目前mycat 1.3和1.4版本中,若想支持MySQL一主一從的標(biāo)準(zhǔn)配置,并且在主節(jié)點宕機的情況下,從節(jié)點還能讀取數(shù)據(jù),則需要在Mycat里配置為兩個writeHost并設(shè)置banlance=1?!?2) 設(shè)置 switchType=2 與slaveThreshold=100“Mycat心跳檢查語句配置為 show slave status ,dataHost 上定義兩個新屬性: switchType=2 與slaveThreshold=100,此時意味著開啟MySQL主從復(fù)制狀態(tài)綁定的讀寫分離與切換機制。Mycat心跳機制通過檢測 show slave status 中的 Seconds_Behind_Master, Slave_IO_Running, Slave_SQL_Running 三個字段來確定當(dāng)前主從同步的狀態(tài)以及Seconds_Behind_Master主從復(fù)制時延?!八?、主從測試,執(zhí)行以下命令mysql explain create table company(id int not null primary key,name varchar(100);+-+-+| DATA_NODE | SQL |+-+-+| dn1 | create table company(id int not null primary key,name varchar(100) | dn2 | create table company(id int not null primary key,name varchar(100) | dn3 | create table company(id int not null primary key,name varchar(100) |+-+-+3 rows in set (0.32 sec)mysql create table company(id int not null primary key,name varchar(100);Query OK, 0 rows affected (0.26 sec)mysql insert into company(id,n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論