我正在尝试使用terminal或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/librarys/config.defalut.php 中
$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导入数据库文件时,它也会导致错误
类似:没有收到数据
有没有其他方法可以像使用php&逐个插入数据库。这是个好办法吗?
知道问题出在哪里吗?
提前感谢!
我认为您应该拆分.sql insert命令,并在多个阶段导入它们。请检查"最大连接时间"设置。
你也可以试试http://www.ozerov.de/bigdump/
这可能是因为max_allowed_packet
my.ini/my.cnf
文件中的更改。在文件中包含[mysqld]
下的单行
max_allowed_packet=500M
现在restart the MySQL service
一旦你完成。您可以在mysql中看到它的当前值,如下所示:
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