
這是我的第一個問題,英語不是我的母語,但我會盡力解釋。
我有一個在我的提供者基礎設施中運行的具有公共 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
或者,在從屬設備上而不是在主設備上運行該命令。如果沒有上述錯誤,也許它會工作得更好。
提示:也許您應該轉儲所有資料庫而不僅僅是一個?