2014-09-02 67 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