2016-09-15 98 views
0

我试图通过phpmyadmin导入约45MB的mysql备份,但它需要永远。我在本地phpmyadmin安装的config.default.php中设置了$cfg['ExecTimeLimit'] = 0,但是它仍然运行两个小时!我不能真正理解为什么这种相对小的备份必须花费那么多时间。有没有办法优化导入过程(在my.conf的php.ini中)或自己的备份文件?mysql导入45MB sql需要永久

+0

我想这取决于格式,但如果你可以在命令行直接去做到mysql,你应该避免phpMyAdmin的完全。 – jeroen

+0

命令行是一个很好的建议,但不适用,因为将来的恢复将在联机安装中进行,并且我没有命令行访问权限。 – user700119

回答

1

我敢打赌,Fedora 16尊重事务/同步语义,而Windows不是。如果你做数学,两个小时内的600,000次更新是每分钟5000次。这与磁盘旋转速度的数量级相同。

您可以尝试将SET autocommit=0;添加到导入文件的开头,并将COMMIT;添加到最后。有关更多信息,请参见this page

这些是我可以建议使其导入更好的唯一几个选项。另外,确保在生成.sql文件之前,应该在my.cnf文件中增加max_allowed_packet=32M或更多的值。

+0

不幸的是我并没有真正得到Fedore 16的一部分......我在基于SSD的Macbook Pro上运行在OS X上的MAMP堆栈上本地工作。 我正在尝试SET autocommit = 0;参数,并会尝试从您发送给我的链接中获取其他建议。我会随时告知你的结果。 max_allowed_pa​​cket无法更改,因为备份来自在线安装我无法访问该服务器的my.cnf。 – user700119

0

在ExecTimeLimit中尝试一些编号为0的数字。

+0

尝试多达1200无效... – user700119

+0

使用命令行转储 - $ mysqldump -u [uname] -p [pass] db_name> db_backup.sql –

0

好吧,所以问题显然是phpmyadmin配置,因为命令行导入不到30秒,所以phpmyadmin与我今天下午安装的Xampp堆栈一起发货。 不幸的是,我真的不知道什么配置导致了这种巨大的放缓。 感谢您的帮助。

干杯 罗伯托