Mysql
使用 CLI 或 Workbench 6.3 CE 將 MySQL 數據庫導入 5.7 時掛起
我有一個 SQL 轉儲文件,我使用 Workbench 從正在退役的伺服器導出。主機和目標作業系統是 Microsoft Windows Server 2008 R2(因此本機是 x64)。似乎沒有辦法導入這個 SQL 轉儲文件,因為無論如何它都會掛起。文件大小小於 500Mb。我確實查看了數據庫架構本身,並且表似乎已經覆蓋了最初創建的同名數據庫,但是導入只會掛起。我不是 DBA,只是網路/系統管理員,所以我對導入這個東西感到非常沮喪。有什麼建議嗎?
我在導入 1.2G SQL 文件時遇到了類似的問題,在我的筆記型電腦(Core i-5 x64 8G RAM)上花了大約 10 個小時當然我是多任務處理。
要了解進度,我會使用此查詢每小時查詢一次
select table_name as "Table", round(((data_length + index_length) / 1024 / 1024), 2) AS "SIZE" from information_schema.TABLES where table_schema = "Name_of_Database_You_Import";
謝謝
我假設實際問題是您不知道導入過程的進度百分比。這就是為什麼在後台進行導入時它似乎掛起的原因。
以下詳細資訊是從這個how-can-i-monitor-the-progress-of-an-import-of-a-large-sql-file接受的答案中複製的
如果您只是從 *nix 上的 CLI 的轉儲文件導入,例如
mysql -uxxx -pxxx dbname < /sqlfile.sql
然後首先在您的作業系統上安裝管道查看器,然後嘗試這樣的事情:
pv sqlfile.sql | mysql -uxxx -pxxxx dbname
這將在程序執行時顯示一個進度條。
它非常有用,您還可以使用它來估計 mysqldump 進度。
pv 轉儲
sqlfile.sql
並將它們傳遞給 mysql(因為管道運算符)。在傾倒時,它顯示了進展。很酷的是 mysql 只在它可以進行的情況下以最快的速度獲取數據,因此 pv 可以顯示導入的進度。我沒有任何證據。但似乎是這樣。我想有一些緩衝區使用,但在某些時候我認為mysql
當它仍然忙於處理時不會再讀取任何數據。