欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql的主從怎么實(shí)現(xiàn),mysql主從配置過程

MySQL 主從,5 分鐘帶你掌握

MySQL 主從一直是面試常客,里面的知識點(diǎn)雖然基礎(chǔ),但是能回答全的同學(xué)不多。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),揭陽企業(yè)網(wǎng)站建設(shè),揭陽品牌網(wǎng)站建設(shè),網(wǎng)站定制,揭陽網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,揭陽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

比如樓哥之前面試小米,就被問到過主從復(fù)制的原理,以及主從延遲的解決方案,因?yàn)榛卮鸬姆浅2诲e(cuò),給面試官留下非常好的印象。你之前面試,有遇到過哪些 MySQL 主從的問題呢?

所謂 MySQL 主從,就是建立兩個(gè)完全一樣的數(shù)據(jù)庫,一個(gè)是主庫,一個(gè)是從庫, 主庫對外提供讀寫的操作,從庫對外提供讀的操作 ,下面是一主一從模式:

對于數(shù)據(jù)庫單機(jī)部署,在 4 核 8G 的機(jī)器上運(yùn)行 MySQL 5.7 時(shí),大概可以支撐 500 的 TPS 和 10000 的 QPS, 當(dāng)遇到一些活動(dòng)時(shí),查詢流量驟然,就需要進(jìn)行主從分離。

大部分系統(tǒng)的訪問模型是讀多寫少,讀寫請求量的差距可能達(dá)到幾個(gè)數(shù)量級,所以我們可以通過一主多從的方式, 主庫只負(fù)責(zé)寫入和部分核心邏輯的查詢,多個(gè)從庫只負(fù)責(zé)查詢,提升查詢性能,降低主庫壓力。

MySQL 主從還能做到服務(wù)高可用,當(dāng)主庫宕機(jī)時(shí),從庫可以切成主庫,保證服務(wù)的高可用,然后主庫也可以做數(shù)據(jù)的容災(zāi)備份。

整體場景總結(jié)如下:

MySQL 的主從復(fù)制是依賴于 binlog 的,也就是記錄 MySQL 上的所有變化并以二進(jìn)制形式保存在磁盤上二進(jìn)制日志文件。

主從復(fù)制就是將 binlog 中的數(shù)據(jù)從主庫傳輸?shù)綇膸焐希话氵@個(gè)過程是異步的,即主庫上的操作不會等待 binlog 同步的完成。

詳細(xì)流程如下:

當(dāng)主庫和從庫數(shù)據(jù)同步時(shí),突然中斷怎么辦?因?yàn)橹鲙炫c從庫之間維持了一個(gè)長鏈接,主庫內(nèi)部有一個(gè)線程,專門服務(wù)于從庫的這個(gè)長鏈接的。

對于下面的情況,假如主庫執(zhí)行如下 SQL,其中 a 和 create_time 都是索引:

我們知道,數(shù)據(jù)選擇了 a 索引和選擇 create_time 索引,最后 limit 1 出來的數(shù)據(jù)一般是不一樣的。

所以就會存在這種情況:在 binlog = statement 格式時(shí),主庫在執(zhí)行這條 SQL 時(shí),使用的是索引 a,而從庫在執(zhí)行這條 SQL 時(shí),使用了索引 create_time,最后主從數(shù)據(jù)不一致了。

那么我們改如何解決呢?

可以把 binlog 格式修改為 row,row 格式的 binlog 日志記錄的不是 SQL 原文,而是兩個(gè) event:Table_map 和 Delete_rows。

Table_map event 說明要操作的表,Delete_rows event用于定義要?jiǎng)h除的行為,記錄刪除的具體行數(shù)。 row 格式的 binlog 記錄的就是要?jiǎng)h除的主鍵 ID 信息,因此不會出現(xiàn)主從不一致的問題。

但是如果 SQL 刪除 10 萬行數(shù)據(jù),使用 row 格式就會很占空間的,10 萬條數(shù)據(jù)都在 binlog 里面,寫 binlog 的時(shí)候也很耗 IO。但是 statement 格式的 binlog 可能會導(dǎo)致數(shù)據(jù)不一致。

設(shè)計(jì) MySQL 的大叔想了一個(gè)折中的方案,mixed 格式的 binlog,其實(shí)就是 row 和 statement 格式混合使用, 當(dāng) MySQL 判斷可能數(shù)據(jù)不一致時(shí),就用 row 格式,否則使用就用 statement 格式。

有時(shí)候我們遇到從數(shù)據(jù)庫中獲取不到信息的詭異問題時(shí),會糾結(jié)于代碼中是否有一些邏輯會把之前寫入的內(nèi)容刪除,但是你又會發(fā)現(xiàn),過了一段時(shí)間再去查詢時(shí)又可以讀到數(shù)據(jù)了,這基本上就是主從延遲在作怪。

主從延遲,其實(shí)就是“從庫回放” 完成的時(shí)間,與 “主庫寫 binlog” 完成時(shí)間的差值, 會導(dǎo)致從庫查詢的數(shù)據(jù),和主庫的不一致 。

談到 MySQL 數(shù)據(jù)庫主從同步延遲原理,得從 MySQL 的主從復(fù)制原理說起:

總結(jié)一下主從延遲的主要原因 :主從延遲主要是出現(xiàn)在 “relay log 回放” 這一步,當(dāng)主庫的 TPS 并發(fā)較高,產(chǎn)生的 DDL 數(shù)量超過從庫一個(gè) SQL 線程所能承受的范圍,那么延時(shí)就產(chǎn)生了,當(dāng)然還有就是可能與從庫的大型 query 語句產(chǎn)生了鎖等待。

我們一般會把從庫落后的時(shí)間作為一個(gè)重點(diǎn)的數(shù)據(jù)庫指標(biāo)做監(jiān)控和報(bào)警,正常的時(shí)間是在毫秒級別,一旦落后的時(shí)間達(dá)到了秒級別就需要告警了。

解決該問題的方法,除了縮短主從延遲的時(shí)間,還有一些其它的方法,基本原理都是盡量不查詢從庫。

具體解決方案如下:

在實(shí)際應(yīng)用場景中,對于一些非常核心的場景,比如庫存,支付訂單等,需要直接查詢從庫,其它非核心場景,就不要去查主庫了。

兩臺機(jī)器 A 和 B,A 為主庫,負(fù)責(zé)讀寫,B 為從庫,負(fù)責(zé)讀數(shù)據(jù)。

如果 A 庫發(fā)生故障,B 庫成為主庫負(fù)責(zé)讀寫,修復(fù)故障后,A 成為從庫,主庫 B 同步數(shù)據(jù)到從庫 A。

一臺主庫多臺從庫,A 為主庫,負(fù)責(zé)讀寫,B、C、D為從庫,負(fù)責(zé)讀數(shù)據(jù)。

如果 A 庫發(fā)生故障,B 庫成為主庫負(fù)責(zé)讀寫,C、D負(fù)責(zé)讀,修復(fù)故障后,A 也成為從庫,主庫 B 同步數(shù)據(jù)到從庫 A。

MySQL主從原理

系統(tǒng)優(yōu)化:假如現(xiàn)在用戶反映系統(tǒng)太卡

1:如果是請求太多,判斷web服務(wù)器壓力過大,增加前端的web服務(wù)器,做負(fù)載均衡

2:如果請求靜態(tài)頁面不卡了,但是請求動(dòng)態(tài)數(shù)據(jù)還是卡,說明MySQL處理的請求太多了,在應(yīng)用層增加緩存

3:如果請求激增,還是有大量的查詢到MySQL,想辦法處理MySQL ,在一個(gè)應(yīng)用中,大量的消耗MySQL的還是查詢,就可以把MySQL拆開,就像公路分道 公交車道,小轎車道,把MySQL做成主從

1,就算MYSQL拆成了多個(gè),也必須分出主和從,所有的寫操作都必須要在主MYSQL 上完成;

2,所有的從MYSQL的數(shù)據(jù)都來自于(同步于)主MYSQL;

3,既然涉及到同步,那一定有延遲;有延遲,就一定可能在讀的時(shí)候產(chǎn)生臟數(shù)據(jù);所以,能夠在從MYSQL上進(jìn)行的讀操作,一定對實(shí)時(shí)性和臟數(shù)據(jù)有一定容忍度的數(shù)據(jù);比如,登陸日志,后臺報(bào)表,首頁統(tǒng)計(jì)信息來源;文章;資訊;SNS消息;

4,[注意]:在MYSQL主從時(shí),如果一個(gè)業(yè)務(wù)(service中的一個(gè)方法)中,如果既有R操作,又有W操作,因?yàn)閃操作一定要在主MYSQL上,所以在一個(gè)事務(wù)中所有的數(shù)據(jù)來源都只能來自于一個(gè)MYSQL

1,要完成主從同步,就必須讓在Master上執(zhí)行的所有的DML和DDL能夠正確的在Salve上再執(zhí)行一遍;MYSQL選擇使用文件來記錄SQL;

2,要完成主從同步,第一個(gè)事情就是把在主服務(wù)器上的bin-log(二進(jìn)制文件)打開,bin-log文件就可以記錄在MYSQL上執(zhí)行的所有的DML+DDL+TCL;

3,MYSQL使用被動(dòng)注冊的方式來讓從MYSQL請求同步主MYSQL的binlog;原因:被動(dòng)請求的方式,主的MYSQL不需要知道有哪些從的MYSQL,我額外添加/去掉從MYSQL服務(wù)器,對主MYSQL服務(wù)器的正常運(yùn)行沒有任何影響;

4,第二步,從MYSQL后臺一個(gè)線程發(fā)送一個(gè)請求,到主服務(wù)器請求更新數(shù)據(jù);最重要的數(shù)據(jù)(我這次請求,請求你bin-log的哪一行數(shù)據(jù)之后的數(shù)據(jù))

5,第三步,主MYSQL后臺一個(gè)線程接收到從MYSQL發(fā)送的請求,然后讀取bin-log文件中指定的內(nèi)容,并放在從MYSQL的請求響應(yīng)中;

6,第四步,從MYSQL的請求帶回同步的數(shù)據(jù),然后寫在從MYSQL中的relay-log(重做日志)中;relay-log中記錄的就是從主MYSQL中請求回來的哪些SQL數(shù)據(jù);

7,第五步,從MYSQL后臺一個(gè)線程專門用于從relay-log中讀取同步回來的SQL,并寫入到從MYSQL中,完成同步;

8,MYSQL的主從同步是經(jīng)過高度優(yōu)化的,性能非常高;

安全最重要!MySQL配置主從復(fù)制,主主復(fù)制

為了保障數(shù)據(jù)的安全與穩(wěn)定性,我們常用數(shù)據(jù)庫的主從復(fù)制與主主復(fù)制來實(shí)現(xiàn)。主從復(fù)制為從機(jī)實(shí)時(shí)拷貝一份主機(jī)的數(shù)據(jù),當(dāng)主機(jī)有數(shù)據(jù)變化時(shí),從機(jī)的數(shù)據(jù)會跟著變,當(dāng)從機(jī)數(shù)據(jù)有變化時(shí),主機(jī)數(shù)據(jù)不變;同樣地,主主復(fù)制就是,多個(gè)主機(jī)之間,只要有一個(gè)主機(jī)的數(shù)據(jù)變化了,其它主機(jī)數(shù)據(jù)也會跟著變化。

添加以下內(nèi)容

如果你是使用我之前那種方式啟動(dòng)的MySQL,那么你只需要去你相關(guān)聯(lián)的宿主機(jī)的配置文件夾里面去建立一個(gè) my.cnf 然后寫入上面的類容就好了。

比如:我的啟動(dòng)命令如下(不應(yīng)該換行的,這里為了方便查看,我給它分行了)

那么我只需要在 /docker/mysql_master/conf 這個(gè)目錄下創(chuàng)建 my.cnf 文件就好了。

這個(gè)命令是需要在容器里面執(zhí)行的

docker重啟mysql會關(guān)閉容器,我們需要重啟容器。

確保在主服務(wù)器上 skip_networking 選項(xiàng)處于 OFF 關(guān)閉狀態(tài), 這是默認(rèn)值。 如果是啟用的,則從站無法與主站通信,并且復(fù)制失敗。

我的命令如下

在從服務(wù)器配置連接到主服務(wù)器的相關(guān)信息 (在容器里面的mysql執(zhí)行)

上面代碼的xxxxx你需要換成你的IP,docker 查看容器 IP 的命令如下:

啟動(dòng)的那個(gè)從服務(wù)器的線程

測試的話,你可以在主服務(wù)器里面,創(chuàng)建一個(gè)數(shù)據(jù)庫,發(fā)現(xiàn)從服務(wù)器里面也有了,就成功了。

如果你還想要一個(gè)從服務(wù)器,那么你只需要按照上面配置從服務(wù)器再配置一個(gè)就行了,新建的從服務(wù)器,會自動(dòng)保存主服務(wù)器之前的數(shù)據(jù)。(測試結(jié)果) 如果你上面的主從復(fù)制搞定了,那么這個(gè)主主復(fù)制就很簡單了。我們把上面的從服務(wù)器也改成主服務(wù)器

1)、修改上面的從服務(wù)器的my.cnf文件,和主服務(wù)器的一樣(注意這個(gè)server-id不能一樣)然后重啟服務(wù)器 2)、在從服務(wù)器里面創(chuàng)建一個(gè)復(fù)制用戶創(chuàng)建命令一樣(這里修改一下用戶名可以改為 repl2) 3)、在之前的主服務(wù)器里面運(yùn)行下面這個(gè)代碼

上面主要是教你怎么搭建一個(gè)MySQL集群,但是這里面還有很多其它的問題。也是我在學(xué)習(xí)過程中思考的問題,可能有的小伙伴上來看到文章長篇大論的看不下去,只想去實(shí)現(xiàn)這樣一直集群功能,所以我就把問題寫在下面了。

1)、MySQL的replication和pxc MySQL的集群方案有replication和pxc兩種,上面是基于replication實(shí)現(xiàn)的。

replication: 異步復(fù)制,速度快,無法保證數(shù)據(jù)的一致性。 pxc: 同步復(fù)制,速度慢,多個(gè)集群之間是事務(wù)提交的數(shù)據(jù)一致性強(qiáng)。

2)、MySQL的replication數(shù)據(jù)同步的原理 我們在配置的時(shí)候開啟了它的二進(jìn)制日志,每次操作數(shù)據(jù)庫的時(shí)候都會更新到這個(gè)日志里面去。主從通過同步這個(gè)日志來保證數(shù)據(jù)的一致性。

3)、可否不同步全部的數(shù)據(jù) 可以配置,同步哪些數(shù)據(jù)庫,甚至是哪些表。

4)、怎么關(guān)閉和開始同步

5)、我就我的理解畫出了,主從、主從從、主主、復(fù)制的圖。

往期推薦:

利用Docker僅花1分鐘時(shí)間安裝好MySQL服務(wù)

Linux下MySQL 5.7的離線與在線安裝(圖文)

Linux下安裝MySQL8.0(收藏!)

如何設(shè)計(jì)mysql 的主從關(guān)系

MySQL主從關(guān)系設(shè)置

一,概要

1.這個(gè)文檔主要實(shí)現(xiàn)的是MYSQL主從備份(主機(jī)數(shù)據(jù)庫任何修改,備份機(jī)器都會有實(shí)現(xiàn))

2.但是有個(gè)問題,就是如果對備份機(jī)器數(shù)據(jù)庫進(jìn)行操作,可能會導(dǎo)致連接失敗。

二,準(zhǔn)備工作

1.可以是多臺主機(jī)和從機(jī),在這里我只用一臺主機(jī)和從機(jī)為例講解主從關(guān)系配置。2.主機(jī)IP:192.168.0.100(例子)從機(jī)IP:192.168.0.101(例子)3.主機(jī)和從機(jī)的IP地址必須是一個(gè)網(wǎng)段的。

4.MySQL版本:mysql-5.5.15-win32.msi安裝路徑:D:\MySQL\(例子)5.其他相關(guān)軟件:

①.MySQL管理客戶端:Navicat8forMySQL(Windows)。

②.編輯工具:Notepad++(建議用此編輯工具修改MySQL配置文件,點(diǎn)擊此鏈接進(jìn)入下載

頁面)

三,配置主機(jī)【master】(IP:192.168.0.100)

1.在命令行窗口中執(zhí)行:netstopmysql關(guān)閉mysql服務(wù)。

2.在mysql安裝路徑下找到配置文件my.ini文件(Linux下是文件my.cnf),一般都在MySQL安裝目錄下,本實(shí)驗(yàn)中在D:\MySQL\下。記得先備份以下原來的配置文件。并用Notepad++打開。然后在文件末尾加入下面的代碼:

server-id=1#配一個(gè)唯一的ID編號

log-bin=NEW_NAME#指定日志類型

binlog-do-db=bojinv2#設(shè)置要進(jìn)行主從復(fù)制的數(shù)據(jù)庫名,同時(shí)也要在從機(jī)

【Slave】上設(shè)定(同步多個(gè)另起一行輸入這行代碼)

Binlog-ignore-db=mysql#設(shè)置不要進(jìn)行主從復(fù)制的數(shù)據(jù)庫名,同時(shí)也要在

【Slave】上設(shè)定(不同步多個(gè)另起一行輸入這行代碼

即可。)

3.在系統(tǒng)管理命令窗口輸入:netstartmysql按回車啟動(dòng)mysql服務(wù)

4.在MySQL5.5CommandLineClient命令窗口(路徑:開始菜單》程序》MySQL下),

輸入數(shù)據(jù)庫密碼:******回車,如下圖所示:

然后輸入:grantreplicationslaveon*.*toslaveuser@從機(jī)IP(例:192.168.1.101)identifiedby'從機(jī)數(shù)據(jù)庫密碼(例:123456)'回車后如下圖所示:

var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;

出現(xiàn)這樣的提示后,繼續(xù)輸入:flushprivileges;按回車,如下圖所示:

出現(xiàn)這樣的提示后,繼續(xù)輸入:showmasterstatus;按回車,如下圖所示:

記住出現(xiàn)的表格中的File列和Position的值。

5.在系統(tǒng)管理命令窗口輸入:netstopmysql按回車關(guān)閉mysql服務(wù)

6.進(jìn)入MySQL管理客戶端:Navicat8forMySQL(Windows)。點(diǎn)擊菜單欄用戶,右側(cè)顯示你

剛才創(chuàng)建slaveuser@192.168.1.101的用戶,選中該用戶。點(diǎn)擊編輯用戶鏈接。彈出窗口,再

選擇權(quán)限,將所有權(quán)限都選上保存,這樣主機(jī)就配置好了。重啟一下MySQL服務(wù)。

四,配置從機(jī)【slave】(Ip:192.168.1.101)

1.在命令行窗口中執(zhí)行:netstopmysql關(guān)閉mysql服務(wù)。

2.在mysql安裝路徑下找到配置文件my.ini文件(Linux下是文件my.cnf),一般都

在MySQL安裝目錄下,本實(shí)驗(yàn)中在D:\MySQL\下。記得先備份以下

原來的配置文件。并用Notepad++打開。然后在文件末尾加入下面的代

碼:

server-id=2#配一個(gè)唯一的ID編號,不能與主機(jī)和其他的從機(jī)相同

replicate-do-db=bojinv2#設(shè)置要進(jìn)行主從復(fù)制的數(shù)據(jù)庫名,數(shù)據(jù)庫名與主機(jī)

相同

replicate-ignore-db=mysql#設(shè)置不要進(jìn)行主從復(fù)制的數(shù)據(jù)庫名,數(shù)據(jù)庫名與

主機(jī)相同

別忘了保存修改后的文件。

3.在系統(tǒng)管理命令窗口輸入:netstartmysql按回車啟動(dòng)mysql服務(wù)

4.在MySQL5.5CommandLineClient命令窗口(路徑:開始菜單》程序》MySQL下),

輸入數(shù)據(jù)庫密碼,按回車成功登錄數(shù)據(jù)庫。5.登錄成功后,在該命令窗口輸入:

Changemastertomaster_host='主機(jī)IP(192.168.1.100)',master_user='

如何使用mysql 主從服務(wù)器

一.?準(zhǔn)備服務(wù)器

準(zhǔn)備兩臺主機(jī),分別安裝好Mysql (要相同版本),確定版本無誤,確保mysql服務(wù)正常啟動(dòng),確保兩臺主機(jī)處于同一個(gè)局域網(wǎng)中,確定好哪臺做為主、備機(jī)器,假設(shè)A為主機(jī),B為備機(jī),假設(shè):

A主機(jī)IP地址為:172.16.16.90 端口3306

B主機(jī)IP地址為: 172.16.99.98 端口3306

二.?Mysql建立主-從服務(wù)器熱備配置步驟

1.?創(chuàng)建同步用戶

進(jìn)入MySql操作界面,在主服務(wù)器上為從服務(wù)器建立一個(gè)連接帳戶,該帳戶必須授予REPLICATION SLAVE權(quán)限。

操作指令如下:

1)?grant select,replication slave on *.* to 'replicate'@'172.16.99.98' identified by '1234567';

2)?flush privileges;

2.?修改Mysql配置

如果上面的準(zhǔn)備工作做好,就可以進(jìn)行對Mysql配置文件進(jìn)行修改了,首先找到主服務(wù)器Mysql安裝文件所有在目錄,找到my.ini文件用記事本打開。在[mysqld]下增加如下內(nèi)容:

server-id?=?1

log-bin=mysql-bin

binlog-do-db?=test? ?#需要備份的數(shù)據(jù)庫,多個(gè)寫多行

binlog-ignore-db?=?mysql??????#不需要備份的數(shù)據(jù)庫,多個(gè)寫多行

3.?重啟mysql服務(wù)

修改完配置文件保存后,重啟一下mysql服務(wù)。

4.?查看主服務(wù)器狀態(tài)

進(jìn)入A服務(wù)器Mysql 客戶端輸入命令

1)Show master STATUS;

2)返回結(jié)果如下:

注意看里面的參數(shù),特別前面兩個(gè)File和Position,在從服務(wù)器(Slave)配置主從關(guān)系會有用到的。

5.?從服務(wù)器Slave配置修改配置文件

因?yàn)檫@里面是以主-從方式實(shí)現(xiàn)mysql雙機(jī)熱備的,所以在從服務(wù)器就不用在建立同步帳戶了,直接打開配置文件my.ini進(jìn)行修改即可,道理還是同修改主服務(wù)器上的一樣,只不過需要修改的參數(shù)不一樣。

如下:

[mysqld]

server-id?=?2

log-bin=mysql-bin

replicate-do-db?=?test

replicate-ignore-db?=mysql

6.?重啟mysql服務(wù)

修改完配置文件保存后,重啟一下mysql服務(wù)。

7.?配置從服務(wù)器

先停止slave服務(wù)線程,這個(gè)是很重要的,如果不這樣做會造成下面操作不成功,再用change mster 語句指定同步位置,操作如下:

1)?stop?slave;

2)?change master to master_host='172.16.16.90',

master_user='replicate',master_password='1234567',master_port=3306,

master_log_file='mysql-bin.000001',master_log_pos=98;

3)?start slave

4) show?slave?status

查看下面兩項(xiàng)值均為Yes,即表示設(shè)置從服務(wù)器成功。

Slave_IO_Running:?Yes

Slave_SQL_Running:?Yes

如何在一臺windows主機(jī)上實(shí)現(xiàn)MySQL的主從復(fù)制

1、首先要在本地建立兩個(gè)mysql服務(wù),指定不同的端口。我這里一個(gè)主(3306),一個(gè)從(3307)。

2、然后修改主配置文件:

[mysqld]

server-id = 1

binlog-do-db=test #要同步的數(shù)據(jù)庫

#binlog-ignore-db=mysql #不同步的數(shù)據(jù)庫,如果指定了binlog-do-db這里應(yīng)該可以不用指定的

log-bin=mysql-bin #要生成的二進(jìn)制日記文件名稱

修改從配置文件:

[mysqld]

server-id = 2

log-bin = mysql-bin

replicate-do-db=test

3、在主庫添加一個(gè)用戶 repl 并指定replication權(quán)限

create user 'repl'@'127.0.0.1' identified by 'asdf';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1'; -- --這里我指定數(shù)據(jù)庫(test.*)時(shí)報(bào)錯(cuò),而指定全庫(*.*)時(shí)會成功。

4、保持主從mysql的test數(shù)據(jù)庫初始狀態(tài)一致。

一般是先將所有的表加讀鎖,然后copy磁盤上的數(shù)據(jù)庫文件夾。我這里直接停止服務(wù),然后將數(shù)據(jù)文件拷貝過去。

5、在主數(shù)據(jù)庫里面運(yùn)行show master status;記下file和position字段對應(yīng)的參數(shù)。

mysql show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 | 107 | test | |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

6、在從庫設(shè)置它的master:

mysql change master to master_host='127.0.0.1',master_port=3306,master_user='repl',master_password='asdf',master_log_file='mysql-bin.000001',master_log_pos=107;

Query OK, 0 rows affected (0.19 sec)

這里的master_log_file和master_log_pos對應(yīng)剛才show master status記下的參數(shù)。

7、在從庫開啟從數(shù)據(jù)庫復(fù)制功能。

slave start;

mysql slave start;

Query OK, 0 rows affected (0.00 sec)

在從庫可以通過show slave status來查看一些參數(shù)。

8. 此時(shí)在主庫創(chuàng)建表或插入數(shù)據(jù),在從庫就會很快也能看到了。

-- 主庫

mysql create table tianyc_02(b int);

Query OK, 0 rows affected (0.16 sec)

mysql insert into tianyc_02 values(2013);

Query OK, 1 row affected (0.13 sec)

-- 從庫

mysql show tables;

+----------------+

| Tables_in_test |

+----------------+

| tianyc_01 |

| tianyc_02 |

+----------------+

2 rows in set (0.00 sec)

mysql select * from tianyc_02;

+------+

| b |

+------+

| 2013 |

+------+

1 row in set (0.00 sec)同理,可以搭建第二、第三個(gè)從節(jié)點(diǎn)。

標(biāo)題名稱:mysql的主從怎么實(shí)現(xiàn),mysql主從配置過程
網(wǎng)站路徑:http://chinadenli.net/article16/hsgcdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站企業(yè)網(wǎng)站制作網(wǎng)站收錄網(wǎng)站策劃做網(wǎng)站自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司