在需要於不同架構之間傳輸資料庫的情況下,您可以使用 mysqldump 來建立包含 SQL 陳述式的檔案。然後,您可以將該檔案傳輸到另一台機器,並將其作為 mysql 用戶端的輸入。
使用 mysqldump --help 來查看有哪些選項可用。
如果在使用 GTID 的伺服器上建立傾印(gtid_mode=ON
),預設情況下,mysqldump 會在傾印中包含 gtid_executed
集合的內容,以便將這些內容傳輸到新機器。結果會因涉及的 MySQL 伺服器版本而異。請查看 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,以便伺服器重新載入授權表格資訊。