久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么建立SSH加密的MySQL復制

151次閱讀
沒有評論

共計 2306 個字符,預計需要花費 6 分鐘才能閱讀完成。

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

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

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

建立隧道

ssh 隧道使用端口轉發(fā)技術來連接到從屬服務器上的一個 TCP 端口,在本文示例中該端口是 7777,它通過 ssh 被轉發(fā)到主 MySQL 服務器上的 TCP 端口 3306。確保 MySQL 主服務器端的 ssh 隧道被激活,默認情況下它一般都處于激活狀態(tài)。在 MySQL 從屬服務器上,執(zhí)行以下命令“ssh -f  -L 7777:master_ip:3306 -N”。使用主服務器的一個系統(tǒng)用戶賬號和 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 地址,因為它才是被轉發(fā)的 MySQL1 連接的真正源地址。被轉發(fā)的連接不是來自于 localhost 或 127.0.0.1。

設置復制

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

log-bin=MySQL-bin

server-id=1

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

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

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

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

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

到此,關于“怎么建立 SSH 加密的 MySQL 復制”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注丸趣 TV 網站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-08-01發(fā)表,共計2306字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發(fā)布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 安徽省| 广南县| 西乌珠穆沁旗| 瑞金市| 彭山县| 宾阳县| 定兴县| 偏关县| 池州市| 绥阳县| 安庆市| 吴忠市| 金川县| 高碑店市| 嫩江县| 宁安市| 黄陵县| 兴隆县| 长葛市| 临湘市| 南澳县| 桐柏县| 元江| 临邑县| 神木县| 英吉沙县| 海城市| 上杭县| 南宁市| 禹州市| 凤冈县| 周宁县| 武鸣县| 临夏县| 延庆县| 东城区| 陆丰市| 华安县| 九江县| 体育| 郎溪县|