我尝试使用终端或phpmyadmin上传大小为150MB的.sql文件,但出现错误
这是我在导入文件之前所做的
在php.ini文件中
1)post_max_size = 20000M
2)upload_max_filesize = 20000M
3)max_execution_time = 50000
4)max_input_time = 50000
5)memory_limit = 20000M在/etc/mysql/my.cn中
6)max_allowed_packet = 2G 在/usr/share/phpmyadmin/libraries/config.defalut.php中(&A)
$cfg['ExecTimeLimit'] = '0'; //to make it unlimited, this was 300 default即使在进行了这么多设置之后,我还是收到了错误:
mysql -u root -p dbname < mydbfile.sql & then entered the password & got the
error: ERROR 2006 (HY000) at line 23: MySql server has gone away当我尝试在花费3-4个小时后使用phpmyadmin导入数据库文件时,也会导致错误
like:未收到数据
有没有其他方法,比如用php读取.sql文件&一个接一个地插入到数据库中。这是个好方法吗?
你知道问题出在哪里吗?
提前感谢!
发布于 2013-07-24 16:00:06
我认为您应该拆分.sql插入命令,并分多个阶段导入它们。一定要检查“最大连接时间”设置。
您也可以尝试使用http://www.ozerov.de/bigdump/
发布于 2013-07-24 19:00:24
这可能是因为max_allowed_packet
在my.ini/my.cnf文件中进行更改。在文件中的[mysqld]下包含一行代码
max_allowed_packet=500M一旦你完成了,现在就执行restart the MySQL service。您可以在mysql中看到它的curent值,如下所示:
SHOW VARIABLES LIKE 'max_allowed_packet'你可以尝试这样改变它,但这不太可能在共享主机上起作用:
SET GLOBAL max_allowed_packet=16777216;你可以在这里阅读到http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html
https://stackoverflow.com/questions/17828234
复制相似问题