在您需要於不同架構之間傳輸資料庫的情況下,您可以使用 mysqldump 來建立包含 SQL 陳述式的檔案。然後,您可以將該檔案傳輸到另一台機器,並將其作為 mysql 用戶端的輸入。
使用 mysqldump --help 來查看可用的選項。
如果 GTID 在您建立傾印的伺服器上使用 (gtid_mode=ON
),則預設情況下,mysqldump 會在傾印中包含 gtid_executed
集合的內容,以便將這些內容傳輸到新機器。結果可能因所涉及的 MySQL Server 版本而異。檢查 mysqldump 的 --set-gtid-purged
選項的說明,以了解您正在使用的版本會發生什麼情況,以及如果預設行為的結果不適合您的情況,應如何變更行為。
在兩台機器之間移動資料庫的最簡單(儘管不是最快)的方法是在資料庫所在的機器上執行以下命令
mysqladmin -h 'other_hostname' create db_name
mysqldump db_name | mysql -h 'other_hostname' db_name
如果您想透過慢速網路從遠端機器複製資料庫,您可以使用以下命令
mysqladmin create db_name
mysqldump -h 'other_hostname' --compress db_name | mysql db_name
您也可以將傾印儲存在檔案中,將該檔案傳輸到目標機器,然後將該檔案載入到那裡的資料庫中。例如,您可以像這樣將資料庫傾印到來源機器上的壓縮檔案
mysqldump --quick db_name | gzip > db_name.gz
將包含資料庫內容的檔案傳輸到目標機器,並在那裡執行以下命令
mysqladmin create db_name
gunzip < db_name.gz | mysql db_name
您也可以使用 mysqldump 和 mysqlimport 來傳輸資料庫。對於大型表格,這比僅僅使用 mysqldump 快得多。在以下命令中,DUMPDIR
代表您用來儲存 mysqldump 輸出之目錄的完整路徑名稱。
首先,建立輸出檔案的目錄並傾印資料庫
mkdir DUMPDIR
mysqldump --tab=DUMPDIR
db_name
然後將 DUMPDIR
目錄中的檔案傳輸到目標機器上的某些對應目錄,並將檔案載入到那裡的 MySQL 中
mysqladmin create db_name # create database
cat DUMPDIR/*.sql | mysql db_name # create tables in database
mysqlimport db_name
DUMPDIR/*.txt # load data into tables
不要忘記複製 mysql
資料庫,因為權限表儲存在這裡。您可能必須在新機器上以 MySQL root
使用者身分執行命令,直到您將 mysql
資料庫就位為止。
在新機器上匯入 mysql
資料庫後,執行 mysqladmin flush-privileges,以便伺服器重新載入權限表資訊。