我们使用中央phpMyAdmin实例来管理许多远程mysql服务器。自从将phpMyAdmin更新为4.0.9以来,其中一位开发人员遇到了使用phpMyAdmin导入工具将CSV导入mysqld数据库的问题。 以下是详细信息: -
phpMyAdmin Version information: 4.0.9deb1.lucid~ppa.1 is used to centrally manage a number mysql instances including the developers Developer VM's
MySQL Database: /usr/libexec/mysqld Ver 5.5.36 for Linux on x86_64 (remote host)
Apache2:
Server version: Apache/2.2.14 (Ubuntu)
Server built: Feb 14 2012 16:42:25
PHP:
PHP 5.3.2-1ubuntu4.19
CSV file sample in this case is 2.75MB in size.
我开始使用默认的php.ini内存限制10MB,在调试此问题时,我最终增加到256MB。当memory_limit小于128MB或更小时,收到以下错误消息:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 203461 bytes) in /usr/share/phpmyadmin/libraries/plugins/import/ImportCsv.class.php on line 473
我设法解决了这部分问题后再增加256MB,错误更改为
Exceeds Max Allowed Packet for MySQL
我相信我已经将问题本地化到phpMyAdmin,方法是使用相同的SOURCE和TARGET主机从终端手动导入来自mysql CLI的数据来执行LOAD DATA IN FILE,没有问题,数据导入正确。
如果我们在mysql服务器的本地主机上使用phpMyAdmin(版本信息:4.1.11)我遇到了一个不同的问题,说明数据库已经消失,我已经放弃了查询,因为类似的原因需要运行太长时间。
我猜我被抛出的是"当由phpMyAdmin"处理时,2.75MB CSV如何设法将气球扩展到256MB以下?内存泄漏也许?
我在互联网上好好看看,我在这里努力想出一些不错的答案。
或许需要使用phpMyAdmin ?????
记录错误是否有其他人遇到此问题并有解决方案?