首先給出一些背景。在原始問題中鏈接到的FlightStats下載頁面似乎提供了來自MySQL數據目錄的二進制表存儲文件的壓縮包。 考慮到這被認爲是一種可行的發佈方式,並且結合使用MERGE表,我會推測這個tarball包含了一堆MyISAM數據文件(.myi
,.myd
)。傑克的編輯確認這是情況。
這是一種分配MySQL數據集的非典型手段,雖然在備份MyISAM存儲時並不罕見,並且可能不是所有這些前所未聞的大數據集的移動;它可能比相應的轉儲文件具有更高的空間利用率。當然,在SQL Server領域,將數據庫文件附加到實例中是很常見的。
從廣義上講,你會恢復數據庫,如下所示:
- 找到MySQL數據目錄;通常爲
/var/mysql
或類似
- 用所需的數據庫名稱創建一個新目錄,例如,
flightdata
- 提取從壓縮包的
.myi
,.myd
和其他文件到這個目錄
- 確保整個目錄是由MySQL運行的(通常
mysql
)用戶所擁有的 - 使用chmod -R
,以確保您得到的一切
- 打開一個MySQL控制檯
USE <database-name>
SHOW TABLES
你應該看到列出了一些表格。此外,鏈接的下載頁面還包括一對SQL腳本,其中包含SQL命令,您需要在數據庫運行之後對其執行這些命令。這些將導致合併定義和表索引被重建。您可以將它們傳送到命令行客戶端,例如mysql -u<username> -p<password> <database-name> < <sql-file>
。
當你這樣做時關閉MySQL服務器可能是一個好主意;使用例如/etc/init.d/mysql stop
或類似文件,並在文件提取到位後重新啓動。
來源
2010-02-03 23:37:53
Rob
註冊是什麼意思? – 2010-02-03 22:53:48
只是爲了說明緣故。您在Management Studio中註冊MS SQL實例而不是數據庫,實例通常擁有多個數據庫。 – AdamW 2010-02-03 23:19:27
@kerchingo是的,你是對的。我想將我下載的包含.frm,.myd和.myi的數據庫添加到我的本地mysql實例中。 – Jack 2010-02-03 23:40:27