2

我正在尝试150MB使用终端或 phpmyadmin 上传具有大小的 .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

 $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 文件并一一插入数据库。这是好方法吗?

知道可能是什么问题吗?

提前致谢!

4

2 回答 2

2

我认为您应该拆分 .sql 插入命令并分多个阶段导入它们。请检查“最大连接时间”设置。

你也可以试试http://www.ozerov.de/bigdump/

于 2013-07-24T08:00:06.223 回答
0

这可能是因为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

于 2013-07-24T11:00:23.577 回答