最近我需要將我的伺服器更改為另一個網站託管提供者伺服器。為此,我發現我的 MySQL 資料庫太大,無法使用我擁有的存取權限下載和上傳。
使用 phpMyAdmin,我可以從目前的 MySQL 伺服器匯出資料並直接匯入到新的 MySQL 伺服器,這樣我就不必下載資料了嗎?
答案1
你的短語“我擁有的訪問權限”。很有趣。您的頻寬有限嗎?空間有限?殼有限?解釋這一點將有助於闡明更適合您的特定參數的解決方案。
為了將資料庫從一台機器取得到另一台機器,您有傳輸檔案。你可以透過幾種不同的方式來做到這一點:
1.)複製整個mysql目錄(當然是在停止mysql之後)
rsync -a main_host:/var/lib/mysql/ smaecond_host:/var/lib/mysql/
2.) 使用 mysqldump 將資料庫轉儲到文件,然後傳輸該文件:
在主伺服器上:
mysqldump > [local_file]
rsync [local_file] secondary:host
在新伺服器上:
mysql < [local_file]
3.) 如果您可以實際存取其中一個或兩個,Sneakernet 可能是一種選擇
如果您的頻寬有限,則可以為 rsync 指定 --bwlimit 開關來限制 xfer 的速率。如果您的空間有限 - 那麼您可能會遇到更大的問題。
答案2
這不會使用 phpMyAdmin,因此可能不適用於您的情況。
如果使用 MySQL 並且您具有 shell 存取權限,請考慮將 mysqldump 與管道一起使用。
http://www.cyberciti.biz/faq/mysqldump-pipe-mysql-output-and-input/
請注意,這可能會鎖定兩台伺服器上的表。此外,如果您不使用 SSH,則資料將以純文字形式發送。我經常透過快速的專用網頁連結使用此方法。