phpMyAdmin:无法导入庞大的数据库文件,有什么建议吗?

时间:2011-02-19 14:20:39

标签: upload phpmyadmin size

我最近买了一台新电脑,所以我想我会把所有的网络项目都移走。移动文件很简单,但移动数据库似乎有点困难。我使用phpMyAdmin导出了所有数据库,并将其保存到localhost.sql。然后我尝试使用phpMyAdmin在我的新计算机上导入它,我收到错误:

No data to import. Either no filename was sent or the filesize exceeded the maximum allowed size. See FAQ 1.16. (This was translated from Swedish)

我按照建议查看了常见问题解答。他们提到了一个名为BigDump的工具。所以我下载了它,看了你需要运行它的设置后,我意识到我不能使用它。为什么?因为它需要连接到一个特定的数据库。我正在尝试一次导入多个数据库。所以,那里没有成功。

我还尝试将PHP的upload_max_filesize(以及常见问题解答中提到的另一个)设置为类似于999的内容。由于某些原因,这似乎不起作用。在重新运行之前,我确实重启了所有服务。

我应该提一下,我在旧计算机上使用过XAMPP,然后在新计算机上切换到WAMP。不过那应该没关系,对吗?因为两个“包”都使用phpMyAdmin和apache。

关于如何绕过这场噩梦的任何建议?

17 个答案:

答案 0 :(得分:52)

<强>方法文档

确保在“php.ini”(位于“php.exe”的位置更改*“post_max_size”*和*“upload_max_filesize”* >是)。

以下示例允许您上载和导入128MB sql文件:

post_max_size=128M
upload_max_filesize=128M

重启Apache,你就完全了。

<强>替代

解决此问题的另一种方法是使用命令行。但这是一种解决方法,并且像解决方法一样难看:

C:\xampp\mysql\mysql.exe -u root -p db_name < C:\some_path\your_sql_file.sql

由于您没有使用服务器而是使用命令行,因此上传和POST大小无关紧要。这就是为什么我称之为“解决方法”,因为它实际上并没有解决您的问题。

答案 1 :(得分:19)

其他人总是试图重新配置php.ini文件,但对我来说,我认为最好的做法是使用你的MYSQL控制台,因为它确实可以节省你的时间。

以下是MYSQL控制台的分步指南:

打开MYSQL控制台,然后运行它。

类型:

<强>的MySQL&GT;使用database_name;

<强>的MySQL&GT; source location_of_your_file;

location_of_your_file应该看起来像C:\ mydb.sql

所以命令是mysql&gt; source C:\ mydb.sql;

这种导入sql转储对BIG SQL FILE非常有帮助。

我将我的文件mydb.sql复制到目录C:。它应该是大写C:为了运行因为它会给你一个mysql错误或语法错误

答案 2 :(得分:9)

在wamp服务器中

  1. 在路径&#34; C:\ wamp \ apps \ phpmyadmin&#34;中打开config.inc.php文件并设置/添加此行。 $ cfg [&#39; UploadDir&#39;] ='上传';
  2. 重新启动所有服务
  3. 现在在phpmyadmin(C:\ wamp \ apps \ phpmyadmin4.0.4 \ upload)文件夹中创建上传文件夹,并将.sql文件放在上传文件夹中。
  4. 现在在浏览器中打开phpmyadmin,进入导入状态。您可以在浏览按钮下方的下拉列表中看到该文件,其中包含上传目录文件夹和文件。
  5. 选择它并开始......

答案 3 :(得分:7)

xampp\php\php.ini

中进行更改

查找

post_max_size       = 8M
upload_max_filesize = 2M
max_execution_time  = 30
max_input_time      = 60
memory_limit        = 8M

更改为:

post_max_size       = 750M
upload_max_filesize = 750M
max_execution_time  = 5000
max_input_time      = 5000
memory_limit        = 1000M

答案 4 :(得分:3)

您可以从命令行导入 - 类似mysql < databasedump.sql(取决于操作系统)。

答案 5 :(得分:3)

答案 6 :(得分:1)

修改my.ini文件

添加以下行

wait_timeout=28800
interactive_timeout = 28800
max_allowed_packet=32M

重启mysql

打开dump.sql文件 添加以下行

use mydbname

转到mysql文件夹并运行此命令

mysql -u root -h localhost < dump.sql

答案 7 :(得分:1)

按照此步骤转储庞大的数据库:

1)从http://www.ozerov.de/bigdump/下载php脚本 BigDump.php

2)在项目文件夹(htdocs或www)中移动 bigdump.php databasedump.sql

3)打开 bigdump.php 文件并编辑以下部分:

$db_server   = 'localhost';
$db_name     = '';
$db_username = '';
$db_password = ''; 

$filename           = '.sql';  

4)在浏览器中打开 bigdump.php ,然后点击导入链接。

答案 8 :(得分:1)

这会在几秒钟内导入你的大型sql文件:

e:\xampp\mysql\bin>mysql -u root -h localhost < verybigsqlfile.sql

不要使用phpmyadmin导入大型sql文件。如果您在线使用mysql,那么请访问mysql控制台。

答案 9 :(得分:1)

压缩sql文件(仅限gzip,bzip2,zip)并导入它。压缩像db csv文件这样的测试文件会大大减少文件大小(~11 mb到2 mb)和phpmyadmin导入引擎可以减少压缩数据

答案 10 :(得分:0)

如果你在Linux上,你可以去终端,在连接到mysql并选择数据库之后,只需输入:

\. /path/to/database/database.sql

答案 11 :(得分:0)

我知道这是旧的但是...... 我很久以前就想出了这个问题。 我使用控制台来执行dump sql文件。 或者我使用adminer替代PHPmyAdmin。

答案 12 :(得分:0)

简单的解决方案就是下载&amp;安装“MySql Workbench”软件,其基于gui并且易于使用。我最近导入了300mb大小的mysql数据库。

答案 13 :(得分:0)

我尝试更改允许的大小,但这并没有解决问题。

但是,在我的特定情况下,有一个名为“ uploaddir ”的文件夹位于:

  

的EasyPHP \模块\的phpmyadmin \ uploaddir

我把SQL文件放在那里,然后回到PHP My Admin的“Import”选项卡。 有一个选项允许我上传已经位于“uploaddir”文件夹中的文件;他们没有限制。

我正在使用Windows和EasyPHP 12.1

答案 14 :(得分:0)

使用SQLYog进行数据库操作,这是专业人士的最佳选择。通过使用SQLYog,您可以导入sql db的 nGB {n-&gt; finite_size}

答案 15 :(得分:0)

如果您正在进行非常大的数据库上传,但Web界面将限制为HTTP最大HTTP请求大小

修改PHP.ini以增加上传限制

找到这一行

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = ??M **<--- change here ....**

然后重启服务器

/sbin/service httpd restart

或使用directadmin重新启动http服务

答案 16 :(得分:0)

phpmyadmin也能够从硬盘驱动器读取 - 上传转储并使用此功能。但是,如果可能的话,我强烈建议您从控制台进行操作。它的速度更快,因为php不必先处理文件,而是直接加载到服务器中。