真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用SSH加密MySQL復(fù)制

這篇文章將為大家詳細(xì)講解有關(guān)如何使用SSH加密MySQL復(fù)制,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)主營陽朔網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,陽朔h5小程序制作搭建,陽朔網(wǎng)站營銷推廣歡迎陽朔等地區(qū)企業(yè)咨詢

其實(shí)MySQL很受人歡迎的原因,有它的免費(fèi)性與開源性,而且MySQL數(shù)據(jù)庫擁有比較詳細(xì)的文檔與內(nèi)置支持?jǐn)?shù)據(jù)MySQL復(fù)制等。
 
但是安全管理員會迅速指出它的一個缺陷:加密。政府對數(shù)據(jù)隱私保護(hù)的要求極為嚴(yán)格,通過局域網(wǎng)或廣域網(wǎng)MySQL復(fù)制數(shù)據(jù)都需要加密。
 
盡管可以通過編譯MySQL使其支持SSL,但許多二進(jìn)制發(fā)行版并未激活該功能。打開一個SQL提示符,然后鍵入命令“show variables like ‘%ssl%”。如果“have_ssl”或“have_openssl”被設(shè)置為“No”,則很不幸該功能未被激活。幸運(yùn)的是,我們還有另一種選擇來從源代碼重新編譯。安全外殼(SSH)支持?jǐn)?shù)據(jù)隧道(data-tunneling),它可以建立一個類似VPN的迷你環(huán)境,來提供透明加密。首先,我們將使用一個用戶名/密碼建立一條SSH隧道。我們將通過使用RSA密鑰對遠(yuǎn)端進(jìn)行認(rèn)證。一旦隧道正常運(yùn)行后,我們將設(shè)置數(shù)據(jù)復(fù)制。
 
建立隧道
 
SSH隧道使用端口轉(zhuǎn)發(fā)技術(shù)來連接到從屬服務(wù)器上的一個TCP端口,在本文示例中該端口是7777,它通過SSH被轉(zhuǎn)發(fā)到主MySQL服務(wù)器上的TCP端口3306。確保MySQL主服務(wù)器端的SSH隧道被激活,默認(rèn)情況下它一般都處于激活狀態(tài)。在MySQL從屬服務(wù)器上,執(zhí)行以下命令“ssh -f user@master_ip -L 7777:master_ip:3306 -N”。使用主服務(wù)器的一個系統(tǒng)用戶賬號和IP地址分別替換user和master_ip。你可能希望使用一個僅用于數(shù)據(jù)MySQL復(fù)制的用戶,將其shell設(shè)定到/bin/false上。另外你可以使用從服務(wù)器上的任何可用端口替換7777。在主數(shù)據(jù)庫端,你將被提示輸入用戶賬號和密碼。
 
現(xiàn)在從MySQL1從服務(wù)器上運(yùn)行“ -h 127.0.0.1 -P 7777”,來連接MySQL主服務(wù)器。切記不能使用localhost,因?yàn)樵贛ySQL中它有別的含義。如果需要,可以在該命令后追加“-u -p”來指定一個MySQL賬號和密碼。如果你獲得一個“permission denied”消息,那么需要檢查MySQL主服務(wù)器上的授權(quán)聲明。
 
授權(quán)聲明應(yīng)該被捆綁到主計(jì)算機(jī)的真實(shí)IP地址,因?yàn)樗攀潜晦D(zhuǎn)發(fā)的MySQL1連接的真正源地址。被轉(zhuǎn)發(fā)的連接不是來自于localhost或127.0.0.1。
 
設(shè)置復(fù)制
 
現(xiàn)在隧道已經(jīng)建好,接下來該設(shè)置數(shù)據(jù)復(fù)制了。這個過程與典型的MySQL復(fù)制設(shè)置完全相同。編輯主服務(wù)器上的my.cnf文件,增加以下兩行代碼:
 
log-bin=mysql-bin
 
server-id=1
 
接下來,創(chuàng)建復(fù)制賬號。在MySQL中,運(yùn)行以下查詢語句:
 
 
 
CREATEUSER’replicationuser’@'master_ip’IDENTIFIEDBY’replicationpassword’; GRANTREPLICATIONSLAVEON*.*TO’replicationuser’@'master_ip’;
在從屬服務(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ù)。對于新創(chuàng)建的復(fù)制環(huán)境,你可能需要手動拷貝數(shù)據(jù)庫到從服務(wù)器上。參考MySQL指南(16.1章節(jié)),可以獲得創(chuàng)建數(shù)據(jù)快照和更多復(fù)制選項(xiàng)的詳細(xì)信息。這一切都做完后,檢查MySQL復(fù)制是否生效。
 
分別在主服務(wù)器和從服務(wù)器上執(zhí)行一個“select”查詢;返回結(jié)果應(yīng)該是相同的。在主服務(wù)器上執(zhí)行insert、update或delete數(shù)據(jù),改變“select”返回結(jié)果的記錄集。等待幾秒鐘后,重新執(zhí)行“select”查詢。如果復(fù)制功能已經(jīng)生效,主從服務(wù)器上得到結(jié)果應(yīng)該仍然是相同的。
 
你可能希望使用預(yù)共享的RSA密鑰來取代必須鍵入密碼。通過使用密鑰,你可以設(shè)置看門狗shell腳本,來確保SSH通道處于激活狀態(tài),而且如果該通道失效,它將自動重啟。另外,考慮在主服務(wù)器上創(chuàng)建一個Cron守護(hù)進(jìn)程,來使用當(dāng)前的unix時間戳來更新數(shù)據(jù)表。
 
從服務(wù)器可以增加一個檢查該值的Cron守護(hù)進(jìn)程。如果它滯后當(dāng)前時間戳太大,復(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ù)更改語句,都將在從服務(wù)器端重復(fù)執(zhí)行。因此如果你無意鍵入了“DELETE FROM mytables”語句,并忘記了使用WHERE子句來限定范圍,那么你的數(shù)據(jù)將會同時在主服務(wù)器和從服務(wù)器上丟失。
 
第二件需要記住的事情是,你能夠在從服務(wù)器上創(chuàng)建、更新和刪除數(shù)據(jù)。我遇到過有的開發(fā)者為了實(shí)現(xiàn)高可用性,創(chuàng)建了同時運(yùn)行在主服務(wù)器和從服務(wù)器上的應(yīng)用程序,并更新了一個被復(fù)制的表,每次都破壞了復(fù)MySQL制功能的正常運(yùn)行。
 
因此你需要在應(yīng)用程序中加入檢查邏輯,檢查它是否是運(yùn)行在一個未激活的從屬系統(tǒng)上,不要向被復(fù)制的表寫數(shù)據(jù)。然后在它上面進(jìn)行開發(fā)者單元測試

關(guān)于“如何使用SSH加密MySQL復(fù)制”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


名稱欄目:如何使用SSH加密MySQL復(fù)制
標(biāo)題來源:http://weahome.cn/article/jddops.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部