怎么建立SSH加密的MySQL復制

這篇文章主要介紹“怎么建立SSH加密的MySQL復制”,在日常操作中,相信很多人在怎么建立SSH加密的MySQL復制問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么建立SSH加密的MySQL復制”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創新互聯主營岐山網站建設的網絡公司,主營網站建設方案,重慶APP軟件開發,岐山h5微信小程序定制開發搭建,岐山網站營銷推廣歡迎岐山等地區企業咨詢

對管理員來說,MySQL頗多吸引人之處,例如它的免費和開源,以及擁有詳盡的文檔和內置支持數據復制等。但是安全管理員會迅速指出它的一個缺陷:加密。政府對數據隱私保護的要求極為嚴格,通過局域網或廣域網復制數據都需要加密。

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

建立隧道

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

現在從MySQL1從服務器上運行“MySQL -h 127.0.0.1 -P 7777”,來連接MySQL主服務器。切記不能使用localhost,因為在MySQL中它有別的含義。如果需要,可以在該命令后追加“-u -p”來指定一個MySQL賬號和密碼。如果你獲得一個“permission denied”消息,那么需要檢查MySQL主服務器上的授權聲明。授權聲明應該被捆綁到主計算機的真實IP地址,因為它才是被轉發的MySQL1連接的真正源地址。被轉發的連接不是來自于localhost或127.0.0.1。


設置復制

現在隧道已經建好,接下來該設置數據復制了。這個過程與典型的MySQL復制設置完全相同。編輯主服務器上的my.cnf文件,增加以下兩行代碼:

log-bin=MySQL-bin

server-id=1

接下來,創建復制賬號。在MySQL中,運行以下查詢語句:

CREATE USER  IDENTIFIED BY replicationpassword;

GRANT REPLICATION SLAVE ON *.* TO ;

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

server-id = 2

master-host = 127.0.0.1

master-user = replicationuser

master-password = replicationpassword

master-port = 7777

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

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

明確MySQL復制相關的兩點重要事項

關于MySQL復制,有兩點重要事項需要記住。首先,其主要目的是災難恢復和高可用性,而非備份。在主服務器上執行的每一條數據更改語句,都將在從服務器端重復執行。因此如果你無意鍵入了“DELETE FROM mytables”語句,并忘記了使用WHERE子句來限定范圍,那么你的數據將會同時在主服務器和從服務器上丟失。

第二件需要記住的事情是,你能夠在從服務器上創建、更新和刪除數據。我遇到過有的開發者為了實現高可用性,創建了同時運行在主服務器和從服務器上的應用程序,并更新了一個被復制的表,每次都破壞了復制功能。因此你需要在應用程序中加入檢查邏輯,檢查它是否是運行在一個未激活的從屬系統上,不要向被復制的表寫數據。然后在它上面進行開發者單元測試。

到此,關于“怎么建立SSH加密的MySQL復制”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!

當前文章:怎么建立SSH加密的MySQL復制
分享地址:http://m.kartarina.com/article16/pihogg.html

成都網站建設公司_創新互聯,為您提供手機網站建設Google品牌網站制作App開發面包屑導航搜索引擎優化

廣告

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

營銷型網站建設
主站蜘蛛池模板: 亚洲av午夜精品无码专区| 中文字幕在线无码一区| 亚洲成在人线在线播放无码| 特级小箩利无码毛片| 无码国模国产在线观看| 无码人妻精品一区二区在线视频| 亚洲人av高清无码| 亚洲AV日韩AV永久无码免下载 | 曰韩人妻无码一区二区三区综合部| 中文字幕无码播放免费| 亚洲AV无码不卡在线观看下载 | av无码东京热亚洲男人的天堂| 一本色道无码不卡在线观看| 亚洲久热无码av中文字幕| 波多野结衣AV无码久久一区| 久久人午夜亚洲精品无码区| 无码任你躁久久久久久老妇App| 成人午夜亚洲精品无码网站| 国产丰满乱子伦无码专| 中文字幕亚洲精品无码| 无码丰满少妇2在线观看| 黄桃AV无码免费一区二区三区| 国产成人无码免费视频97| 久久久精品天堂无码中文字幕 | 亚洲日韩精品无码专区加勒比 | 中文无码喷潮在线播放| 无码国产精品一区二区高潮| 少妇特殊按摩高潮惨叫无码| 亚洲av无码无线在线观看| 中文AV人妻AV无码中文视频| 无码人妻少妇久久中文字幕蜜桃 | 国产成人无码精品一区二区三区| 国产人成无码视频在线观看| 成人免费无遮挡无码黄漫视频| 一本无码人妻在中文字幕免费| 精品欧洲av无码一区二区| 久久精品亚洲AV久久久无码| 精品无码一区二区三区电影| 亚州AV综合色区无码一区| 欧洲精品无码成人久久久| 少妇中文无码高清|