2014-09-02 80 views
0

我使用這樣的mysql導入腳本。MySql導入凍結

sudo mysql -u root -p < /var/tmp/db.sql 

我看到我的數據正在導入,但控制檯已凍結。

[email protected]****:/var/tmp# sudo mysql -u root -p < /var/tmp/db.sql 
Enter password: 

我必須鍵入STRG+C才能返回控制檯。首先,我認爲導入只需要很多時間,但我可以等幾個小時,控制檯不會回來。

我在ubuntu上,mysql文件大概是1GB左右。

你知道爲什麼腳本凍結控制檯嗎?

感謝您的幫助

回答

0

我想我自己找到了答案。

設置這/etc/mysql/my.cnf

[mysqld] 
init_connect='SET autocommit=0' 

現在,進口大約需要2分鐘。

1

導入1GB需要幾個小時?這不正常。你需要知道什麼過程花時間。

嘗試這種情況:

$ ps -ef|grep [m]ysql 

識別進程id然後,

$ strace -cp <pid> 

離開它10秒一分鐘然後^ C。這會告訴你該過程在哪裏花費時間,例如它可能只是在等待磁盤,如果你看到讀寫占主導地位。

+0

不是導入需要數小時。讓我們在5/10分鐘後看到所有帶有數據的數據庫,但控制檯像我上面提到的那樣凍結。我必須輸入'STRG + C'才能再次使用控制檯。 – Stillmatic1985 2014-09-02 08:13:18

+0

我不能使用你建議的方法,因爲在我的db.sql中有多個數據庫導入。如果我嘗試strace我沒有得到任何輸出。在mysql日誌中沒有任何信息。不知道爲什麼控制檯凍結。 ( – Stillmatic1985 2014-09-02 08:39:39