怎么建立SSH加密的MySQL復(fù)制-創(chuàng)新互聯(lián)

這篇文章主要介紹“怎么建立SSH加密的MySQL復(fù)制”,在日常操作中,相信很多人在怎么建立SSH加密的MySQL復(fù)制問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么建立SSH加密的MySQL復(fù)制”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

我們提供的服務(wù)有:做網(wǎng)站、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、崇陽(yáng)ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的崇陽(yáng)網(wǎng)站制作公司

對(duì)管理員來(lái)說(shuō),MySQL頗多吸引人之處,例如它的免費(fèi)和開(kāi)源,以及擁有詳盡的文檔和內(nèi)置支持?jǐn)?shù)據(jù)復(fù)制等。但是安全管理員會(huì)迅速指出它的一個(gè)缺陷:加密。政府對(duì)數(shù)據(jù)隱私保護(hù)的要求極為嚴(yán)格,通過(guò)局域網(wǎng)或廣域網(wǎng)復(fù)制數(shù)據(jù)都需要加密。

盡管可以通過(guò)編譯MySQL使其支持SSL,但許多二進(jìn)制發(fā)行版并未激活該功能。打開(kāi)一個(gè)SQL提示符,然后鍵入命令“show variables like %ssl%”。如果“have_ssl”或“have_openssl”被設(shè)置為“No”,則很不幸該功能未被激活。幸運(yùn)的是,我們還有另一種選擇來(lái)從源代碼重新編譯。安全外殼(ssh)支持?jǐn)?shù)據(jù)隧道(data-tunneling),它可以建立一個(gè)類似VPN的迷你環(huán)境,來(lái)提供透明加密。首先,我們將使用一個(gè)用戶名/密碼建立一條ssh隧道。我們將通過(guò)使用RSA密鑰對(duì)遠(yuǎn)端進(jìn)行認(rèn)證。一旦隧道正常運(yùn)行后,我們將設(shè)置數(shù)據(jù)復(fù)制。

建立隧道

ssh隧道使用端口轉(zhuǎn)發(fā)技術(shù)來(lái)連接到從屬服務(wù)器上的一個(gè)TCP端口,在本文示例中該端口是7777,它通過(guò)ssh被轉(zhuǎn)發(fā)到主MySQL服務(wù)器上的TCP端口3306。確保MySQL主服務(wù)器端的ssh隧道被激活,默認(rèn)情況下它一般都處于激活狀態(tài)。在MySQL從屬服務(wù)器上,執(zhí)行以下命令“ssh -f  -L 7777:master_ip:3306 -N”。使用主服務(wù)器的一個(gè)系統(tǒng)用戶賬號(hào)和IP地址分別替換user和master_ip。你可能希望使用一個(gè)僅用于數(shù)據(jù)復(fù)制的用戶,將其shell設(shè)定到/bin/false上。另外你可以使用從服務(wù)器上的任何可用端口替換7777。在主數(shù)據(jù)庫(kù)端,你將被提示輸入用戶賬號(hào)和密碼。

現(xiàn)在從MySQL1從服務(wù)器上運(yùn)行“MySQL -h 127.0.0.1 -P 7777”,來(lái)連接MySQL主服務(wù)器。切記不能使用localhost,因?yàn)樵贛ySQL中它有別的含義。如果需要,可以在該命令后追加“-u -p”來(lái)指定一個(gè)MySQL賬號(hào)和密碼。如果你獲得一個(gè)“permission denied”消息,那么需要檢查MySQL主服務(wù)器上的授權(quán)聲明。授權(quán)聲明應(yīng)該被捆綁到主計(jì)算機(jī)的真實(shí)IP地址,因?yàn)樗攀潜晦D(zhuǎn)發(fā)的MySQL1連接的真正源地址。被轉(zhuǎn)發(fā)的連接不是來(lái)自于localhost或127.0.0.1。


設(shè)置復(fù)制

現(xiàn)在隧道已經(jīng)建好,接下來(lái)該設(shè)置數(shù)據(jù)復(fù)制了。這個(gè)過(guò)程與典型的MySQL復(fù)制設(shè)置完全相同。編輯主服務(wù)器上的my.cnf文件,增加以下兩行代碼:

log-bin=MySQL-bin

server-id=1

接下來(lái),創(chuàng)建復(fù)制賬號(hào)。在MySQL中,運(yùn)行以下查詢語(yǔ)句:

CREATE USER  IDENTIFIED BY replicationpassword;

GRANT REPLICATION SLAVE ON *.* TO ;

在從屬服務(wù)器端,將以下代碼增加到my.cnf文件中:

server-id = 2

master-host = 127.0.0.1

master-user = replicationuser

master-password = replicationpassword

master-port = 7777

重啟主服務(wù)器和從服務(wù)器上的MySQL服務(wù)。對(duì)于新創(chuàng)建的復(fù)制環(huán)境,你可能需要手動(dòng)拷貝數(shù)據(jù)庫(kù)到從服務(wù)器上。參考MySQL指南(16.1章節(jié)),可以獲得創(chuàng)建數(shù)據(jù)快照和更多復(fù)制選項(xiàng)的詳細(xì)信息。這一切都做完后,檢查復(fù)制是否生效。分別在主服務(wù)器和從服務(wù)器上執(zhí)行一個(gè)“select”查詢;返回結(jié)果應(yīng)該是相同的。在主服務(wù)器上執(zhí)行insert、update或delete數(shù)據(jù),改變“select”返回結(jié)果的記錄集。等待幾秒鐘后,重新執(zhí)行“select”查詢。如果復(fù)制功能已經(jīng)生效,主從服務(wù)器上得到結(jié)果應(yīng)該仍然是相同的。

你可能希望使用預(yù)共享的RSA密鑰來(lái)取代必須鍵入密碼。通過(guò)使用密鑰,你可以設(shè)置看門狗shell腳本,來(lái)確保ssh通道處于激活狀態(tài),而且如果該通道失效,它將自動(dòng)重啟。另外,考慮在主服務(wù)器上創(chuàng)建一個(gè)Cron守護(hù)進(jìn)程,來(lái)使用當(dāng)前的unix時(shí)間戳來(lái)更新數(shù)據(jù)表。從服務(wù)器可以增加一個(gè)檢查該值的Cron守護(hù)進(jìn)程。如果它滯后當(dāng)前時(shí)間戳太大,復(fù)制功能可能已被破壞,管理員應(yīng)該收到告警郵件。

明確MySQL復(fù)制相關(guān)的兩點(diǎn)重要事項(xiàng)

關(guān)于MySQL復(fù)制,有兩點(diǎn)重要事項(xiàng)需要記住。首先,其主要目的是災(zāi)難恢復(fù)和高可用性,而非備份。在主服務(wù)器上執(zhí)行的每一條數(shù)據(jù)更改語(yǔ)句,都將在從服務(wù)器端重復(fù)執(zhí)行。因此如果你無(wú)意鍵入了“DELETE FROM mytables”語(yǔ)句,并忘記了使用WHERE子句來(lái)限定范圍,那么你的數(shù)據(jù)將會(huì)同時(shí)在主服務(wù)器和從服務(wù)器上丟失。

第二件需要記住的事情是,你能夠在從服務(wù)器上創(chuàng)建、更新和刪除數(shù)據(jù)。我遇到過(guò)有的開(kāi)發(fā)者為了實(shí)現(xiàn)高可用性,創(chuàng)建了同時(shí)運(yùn)行在主服務(wù)器和從服務(wù)器上的應(yīng)用程序,并更新了一個(gè)被復(fù)制的表,每次都破壞了復(fù)制功能。因此你需要在應(yīng)用程序中加入檢查邏輯,檢查它是否是運(yùn)行在一個(gè)未激活的從屬系統(tǒng)上,不要向被復(fù)制的表寫數(shù)據(jù)。然后在它上面進(jìn)行開(kāi)發(fā)者單元測(cè)試。

到此,關(guān)于“怎么建立SSH加密的MySQL復(fù)制”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

新聞標(biāo)題:怎么建立SSH加密的MySQL復(fù)制-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://bm7419.com/article24/dicsje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)網(wǎng)站制作、微信小程序、網(wǎng)站改版定制網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司