一.mysql主從庫與讀寫分離的實(shí)現(xiàn)理論
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、長治網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、長治網(wǎng)絡(luò)營銷、長治企業(yè)策劃、長治品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供長治建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:jinyejixie.com
二.mysql配置
1.準(zhǔn)備兩臺(tái)服務(wù)器安裝mysql(也可以在一臺(tái)中裝兩個(gè)mysql修改端口號(hào)避免沖突)
2.分別連接mysql
3.配置mysql
1.配置主庫 monster
打開binary log
2.配置從庫
主庫授權(quán)
賬號(hào)repl后面的是從庫的ip地址 mysql是賬號(hào)repl的密碼
刷新
后面master_log_pos=0 表示從零開始同步 master_log_file 是上面SHOW MASTER STATUS 下面的file文件
在從庫中開啟主從跟蹤
查看從庫狀態(tài)
從庫中終止主從同步 stop slave
查看 my.cnf 文件 把 server -id=1 的字段刪除 保留server-id=2 修改后保存 重啟mysql 重新連接 開啟主從同步start slave
查看從庫狀態(tài) 發(fā)現(xiàn)沒有錯(cuò)誤 到此主從同步配置已經(jīng)完成.
在老版本的MySQL 3.22中,MySQL的單表限大小為4GB,當(dāng)時(shí)的MySQL的存儲(chǔ)引擎還是ISAM存儲(chǔ)引擎。但是,當(dāng)出現(xiàn)MyISAM存儲(chǔ)引擎之后,也就是從MySQL 3.23開始,MySQL單表最大限制就已經(jīng)擴(kuò)大到了64PB了(官方文檔顯示)。也就是說,從目前的技術(shù)環(huán)境來看,MySQL數(shù)據(jù)庫的MyISAM存儲(chǔ) 引擎單表大小限制已經(jīng)不是有MySQL數(shù)據(jù)庫本身來決定,而是由所在主機(jī)的OS上面的文件系統(tǒng)來決定了。\x0d\x0a\x0d\x0a而MySQL另外一個(gè)最流行的存儲(chǔ)引擎之一Innodb存儲(chǔ)數(shù)據(jù)的策略是分為兩種的,一種是共享表空間存儲(chǔ)方式,還有一種是獨(dú)享表空間存儲(chǔ)方式。\x0d\x0a當(dāng)使用共享表空間存儲(chǔ)方式的時(shí)候,Innodb的所有數(shù)據(jù)保存在一個(gè)單獨(dú)的表空間里面,而這個(gè)表空間可以由很多個(gè)文件組成,一個(gè)表可以跨多個(gè)文件存在,所 以其大小限制不再是文件大小的限制,而是其自身的限制。從Innodb的官方文檔中可以看到,其表空間的最大限制為64TB,也就是說,Innodb的單 表限制基本上也在64TB左右了,當(dāng)然這個(gè)大小是包括這個(gè)表的所有索引等其他相關(guān)數(shù)據(jù)。\x0d\x0a而當(dāng)使用獨(dú)享表空間來存放Innodb的表的時(shí)候,每個(gè)表的數(shù)據(jù)以一個(gè)單獨(dú)的文件來存放,這個(gè)時(shí)候的單表限制,又變成文件系統(tǒng)的大小限制了。
轉(zhuǎn)發(fā)到后端從庫 讀取。實(shí)現(xiàn) 主庫負(fù)責(zé)--寫入,從庫負(fù)責(zé)--讀取。
注意:Proxy其實(shí)不是一臺(tái)機(jī)器,只是一個(gè)連接方式,讀取數(shù)據(jù)的時(shí)候自動(dòng)從Salve上取,寫數(shù)據(jù)則自動(dòng)向Master中寫。
實(shí)驗(yàn)前先做好 主從架構(gòu)
主---192.168.1.252 (mysql-5.7 ,三臺(tái)版本一致)
從---192.168.1.101
proxy---192.168.1.102
vim /etc/mysql-proxy.cnf
內(nèi)容如下:
注意:(在服務(wù)器上配置文件要把注釋都去掉,不然會(huì)報(bào)錯(cuò)。)
保存退出。賦予660權(quán)限,不然會(huì)報(bào)錯(cuò)。
3.##修改讀寫配置文件
關(guān)閉可以用killall -9 mysql-proxy 或者kill -9 ID
在主執(zhí)行:(事先做好主從架構(gòu),從庫會(huì)自動(dòng)吧這個(gè)操作更新過去,或者在手動(dòng)去從庫也執(zhí)行一遍)
使用客戶端去鏈接mysql-proxy(1.102)(開2個(gè)以上客戶端鏈接)
接下來,測(cè)試數(shù)據(jù)。(主從都開啟時(shí),先添加一條數(shù)據(jù))
此時(shí)如果停掉slave,在添加數(shù)據(jù)
stop slave;
發(fā)現(xiàn)并沒有剛才添加的id為2的這條數(shù)據(jù)。
因?yàn)榇藭r(shí)slave已經(jīng)停掉了,沒有負(fù)責(zé)給我們提供查詢操作的服務(wù)了,所以查不到了。剛才可以寫入,也是意味著 寫入操作是有 master來完成的。
這時(shí)恢復(fù)slave,再查詢
start slave;
這時(shí)2已經(jīng)有了,恢復(fù)了slave后,先主從通信同步了剛才的數(shù)據(jù),再繼續(xù)提供查詢操作。
到此,讀寫分離完成。
參考:
如果數(shù)據(jù)庫中的數(shù)據(jù)已經(jīng)很多(幾百萬條), 那么可以 加大mysql配置中的 bulk_insert_buffer_size,這個(gè)參數(shù)默認(rèn)為8M
舉例:bulk_insert_buffer_size=100M;
2、第二種mysql插入提速方法:
改寫所有 insert into 語句為 insert delayed into
這個(gè)insert delayed不同之處在于:立即返回結(jié)果,后臺(tái)進(jìn)行處理插入。
這樣mysql前后端分離就可以添加一條或者多條數(shù)據(jù)了
網(wǎng)站標(biāo)題:mysql分離怎么用 mysql如何分離數(shù)據(jù)庫
鏈接分享:http://jinyejixie.com/article20/dodphjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、ChatGPT、域名注冊(cè)、軟件開發(fā)、、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)