初始化位於主伺服器之外的另一個網路上的 MySQL 從伺服器

初始化位於主伺服器之外的另一個網路上的 MySQL 從伺服器

這是我的第一個問題,英語不是我的母語,但我會盡力解釋。

我有一個在我的提供者基礎設施中運行的具有公共 IP 位址的主 MySQL 伺服器,並且我想在我的辦公室運行一個本地 MySQL 從伺服器,該伺服器將複製所有資料以進行測試。

設定複製工作完美,我創建了一個 SSH 隧道,讓我的從伺服器從主伺服器讀取 binlog,這裡一切都很好。

我的問題是設定來自master的數據。通常,當我想將資料從主設備載入到同一網路上的任何從設備時,我在主設備上執行以下命令:

mysqldump 'master' --master-data=1 | mysql 'slave' 

但在這裡我無法獲得從機的任何 IP,因為它位於我的辦公室中一系列 NAT 路由器後面...

有沒有人有解決辦法,知道我無法阻止master並且上面有大約50GB的數據。如果您有任何其他解決方案來進行從主設備到從設備的「熱」資料傳輸,我也很感興趣。

預先感謝您。

答案1

假設您可以從機 ssh 到主機,怎麼樣?

ssh master 'mysqldump \'master\' --master-data=1' | mysql 'slave'

這將在主伺服器上運行轉儲命令,但在本地重新載入它。

答案2

為什麼你不直接將其轉發到一個文件並稍後通過scp或傳輸rsync

mysqldump master --master-data=1 >master.dump

在奴隸上

mysql <master.dump

mysqldump或者,在從屬設備上而不是在主設備上運行該命令。如果沒有上述錯誤,也許它會工作得更好。

提示:也許您應該轉儲所有資料庫而不僅僅是一個?

相關內容