mysql讀寫分離

來源:互聯網
上載者:User

標籤:oca   操作   varchar   arch   als   zha   creat   add   level   

 

1、安裝mysql-proxy

 

實現讀寫分離是有lua指令碼實現的,現在mysql-proxy裡面已經整合,無需再安裝

下載:http://dev.mysql.com/downloads/mysql-proxy/

tar  zxvf mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit. tar .gz mv  mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit  /usr/local/mysql-proxy  2、配置mysql-proxy,建立主設定檔  cd  /usr/local/mysql-proxy mkdir  lua  #建立指令碼存放目錄 mkdir  logs  #建立日誌目錄 cp  share /doc/mysql-proxy/rw-splitting .lua . /lua  #複製讀寫分離設定檔 cp  share /doc/mysql-proxy/admin-sql .lua . /lua  #複製管理指令碼 vi  /etc/mysql-proxy .cnf    #建立設定檔 [mysql-proxy] user=root  #運行mysql-proxy使用者 admin-username=proxy  #主從mysql共有的使用者 admin-password=123.com  #使用者的密碼 proxy-address=192.168.0.204:4040  # 如果不寫連接埠號碼,預設連接埠號碼3306,與Mysql的連接埠號碼衝突,所以會報錯。*************************!!!! proxy- read -only-backend-addresses=192.168.0.203  #指定後端從slave讀取資料 proxy-backend-addresses=192.168.0.202  #指定後端主master寫入資料 proxy-lua-script= /usr/local/mysql-proxy/lua/rw-splitting .lua  #指定讀寫分離設定檔位置 admin-lua-script= /usr/local/mysql-proxy/lua/admin-sql .lua  #指定管理指令碼 log- file = /usr/local/mysql-proxy/logs/mysql-proxy .log  #日誌位置 log-level=info  #定義log記錄層級,由高到低分別有(error|warning|info|message|debug) daemon= true     #以守護進程方式運行 keepalive= true  #mysql-proxy崩潰時,嘗試重啟 儲存退出! chmod 660 /etc/mysql-proxy.cnf  3、修改讀寫分離設定檔  vi  /usr/local/mysql-proxy/lua/rw-splitting .lua if  not proxy.global.config.rwsplit  then   proxy.global.config.rwsplit = {    min_idle_connections = 1,  #預設超過4個串連數時,才開始讀寫分離,改為1    max_idle_connections = 1,  #預設8,改為1    is_debug =  false   } end  4、啟動mysql-proxy  /usr/local/mysql-proxy/bin/mysql-proxy  --defaults- file = /etc/mysql-proxy .cnf netstat  -tupln |  grep  4040  #已經啟動 tcp 0 0 192.168.0.204:4040 0.0.0.0:* LISTEN 1264 /mysql-proxy 關閉mysql-proxy使用:killall -9 mysql-proxy   5、測試讀寫分離 1>.在主伺服器建立proxy使用者用於mysql-proxy使用,從伺服器也會同步這個操作  mysql> grant all on *.* to  ‘proxy‘ @ ‘192.168.0.204‘  identified by  ‘123.com‘ ; 2>關閉從伺服器上的slaveslave stop; 3>.使用用戶端串連mysql-proxymysql -u proxy -P 4040 -h 192.168.0.0 -p 4>下面的操作均使用mysql-proxy的帳號登入資料庫進行操作。 mysql> create table user (number INT(10),name VARCHAR(255)); mysql> insert into  user  values(01, ‘zhangsan‘ ); mysql> insert into user values(02, ‘lisi‘ ); 5>登入主從伺服器,查看:select * from user主要資料庫有資料,從資料庫沒有資料 6>在從庫上開啟slavestart slave過一會執行 select * from user 從庫的資料也會慢慢同步過來 

參考文獻:http://lizhenliang.blog.51cto.com/7876557/1305083

參考文獻2:http://www.cnblogs.com/luckcs/articles/2543607.html

 ======================== 主從庫的資料有時候不一致,還有待研究 疑問,在測試讀寫分離的時候,執行slave stop時間久了,一直不slave start是否資料就很難同步了?slave stop一下會,過一小會,資料還是會同步到從庫的。 

 

  

 

 

mysql讀寫分離

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.