首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从终端或phpmyadmin导入150MB的.sql文件

问如何从终端或phpmyadmin导入150MB的.sql文件
EN

Stack Overflow用户
提问于 2013-07-24 15:56:45
回答 2查看 2.8K关注 0票数 2

我尝试使用终端或phpmyadmin上传大小为150MB的.sql文件,但出现错误

这是我在导入文件之前所做的

在php.ini文件中

代码语言:javascript
复制
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中

代码语言:javascript
复制
6)max_allowed_packet = 2G  

在/usr/share/phpmyadmin/libraries/config.defalut.php中(&A)

代码语言:javascript
复制
 $cfg['ExecTimeLimit'] = '0'; //to make it unlimited, this was 300 default

即使在进行了这么多设置之后,我还是收到了错误:

代码语言:javascript
复制
 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文件&一个接一个地插入到数据库中。这是个好方法吗?

你知道问题出在哪里吗?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2013-07-24 16:00:06

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

您也可以尝试使用http://www.ozerov.de/bigdump/

票数 2
EN

Stack Overflow用户

发布于 2013-07-24 19:00:24

这可能是因为max_allowed_packet

在my.ini/my.cnf文件中进行更改。在文件中的[mysqld]下包含一行代码

代码语言:javascript
复制
max_allowed_packet=500M

一旦你完成了,现在就执行restart the MySQL service。您可以在mysql中看到它的curent值,如下所示:

代码语言:javascript
复制
SHOW VARIABLES LIKE 'max_allowed_packet'

你可以尝试这样改变它,但这不太可能在共享主机上起作用:

代码语言:javascript
复制
SET GLOBAL max_allowed_packet=16777216;

你可以在这里阅读到http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17828234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档