无法通过 phpmyadmin 导入数据库文件过大

Posted

技术标签:

【中文标题】无法通过 phpmyadmin 导入数据库文件过大【英文标题】:Can't import database through phpmyadmin file size too large 【发布时间】:2012-03-24 11:42:41 【问题描述】:

我一直在尝试通过 phpMyAdmin 导入数据库。我的数据库文件是a.sql,它的大小是 1.2 GB 我正在尝试在本地导入它,而 phpMyAdmin 说:

您可能尝试上传过大的文件。有关解决此限制的方法,请参阅文档。

请帮助我真的需要这个工作。

【问题讨论】:

您参考了文档吗?你有 shell 访问你的服务器吗? 最佳Ans 【参考方案1】:

使用命令行:

mysql.exe -u USERNAME -p PASSWORD DATABASENAME < MYDATABASE.sql

MYDATABASE.sql 是您的 sql 文件。

【讨论】:

如果您只有 FTP 访问服务器,您将如何做到这一点? @Kyotoweb 命令行中 -p 和 PASSWORD 之间没有空格(我无法编辑您的帖子,因为更改只有一个字符)。 @nineside 他在谈论 WAMP 和本地。考虑到环境,只是给了他解决问题的最快方法。 aah 我没有发现 WAMP - OP 没有提到本地,但我猜大多数 Windows 服务器提供商都允许 RDP,所以这可能在很大程度上无关 使用此选项时,只需确保在存储 .sql 文件的文件夹中运行脚本,例如 C:\downloads>mysql.exe -u USERNAME -pPASSWORD DATABASENAME 【参考方案2】:

您有三个选择:

使用其他方式获取服务器上的文件,并在服务器上使用mysql客户端 使用另一个客户端连接到服务器并加载数据 更改您的 PHP 设置以允许如此大的文件。不要忘记增加执行时间。

【讨论】:

【参考方案3】:

这里没有人提到的另一个选项是使用BigDump 之类的工具对数据库进行交错加载以绕过限制。这是一个简单的 PHP 脚本,每次加载数据库的一个块,然后重新启动并继续下一个块。

【讨论】:

【参考方案4】:

这是由于 PHP 对上传有文件大小限制。

如果您有终端/shell 访问权限,那么上述答案@Kyotoweb 将起作用。

完成它的一种方法是创建一个 .htaccess/ini 文件文件来更改 PHP 设置以获取通过 PHPmyAdmin 上传的 sql 文件。

php_value upload_max_filesize 120M //file size
php_value post_max_size 120M
php_value max_execution_time 200
php_value max_input_time 200

请注意,您应该在上传后删除此文件。

【讨论】:

非常感谢。它有效,但我需要更多选项,我们必须添加一个变量 ($cfg ['ExecTimeLimit'] = 0;),我们必须在 c:\wamp\apps\phpmyadmin\config.inc.php 中声明它。我在这里提供链接 (john-dugan.com/?p=638) 或者您可以在 RedHat 6.6 中使用与上述相同的指令编辑 /etc/php.ini,始终重启 apache,例如:RedHat 中的 sudo service httpd restart。 应该在哪里创建这个 ini 文件。是否在 PHPmyAdmin 文件夹中? @AbelJojo,这个答案很糟糕,请看这里:***.com/a/38607904/4684797【参考方案5】:

这是我所做的:

    转到我的 XAMPP 安装目录C:\xampp\php 使用文本编辑器打开名为php.ini 的“配置设置”文件,最好也可以使用Windows 机器记事本。 886 号线附近某处,请将其更新为upload_max_filesize = 128M 类似地在第 735 行 post_max_size = 128M 在线 442 max_execution_time = 300 在线 452 max_input_time = 60 从 XAMPP 控制面板或在 Windows 中使用 CMD 重新启动 Apache https://***.com/a/6723485/969092

完成!

【讨论】:

和 OP 有同样的问题。这个解决方案对我有用。 谢谢,看到一大堆其他更复杂的答案,效果很好。【参考方案6】:

使用 phpmyadmin 上传大尺寸数据 执行以下步骤。

    从 C:\wamp\bin\apache\Apache2.4.4\bin 更新打开 php.ini 文件 以下几行
    max_execution_time = 259200
    max_input_time = 259200
    memory_limit = 1000M
    upload_max_filesize = 750M
    post_max_size = 750M
    比重新启动 wamp 服务器或重新启动所有服务后现在上传 使用 phymyadmin 中的导入功能的数据。应用第二步如果 直到不上传数据。 打开config.default.php文件 c:\wamp\apps\phpmyadmin4.0.4\libraries(打开这个文件accoring 到 phpmyadmin 版本) 查找$cfg['ExecTimeLimit'] = 300;替换为$cfg['ExecTimeLimit'] = 0; 现在您可以上传数据了。

您也可以使用 MySQL 控制台上传大型数据库,如下所示。

    点击 WampServer 图标 -> MySQL -> MySQL 控制台 在弹出窗口中输入您的数据库密码,例如root 通过写入命令USE DATABASENAME为插入数据选择数据库名称 然后加载源sql文件为SOURCE C:\FOLDER\database.sql 按回车键插入数据。

注意:您不能加载压缩的数据库文件,例如database.sql.zipdatabase.sql.gz,你必须先提取它。否则控制台会崩溃。

【讨论】:

MySQL 控制台拯救了我的一天! +1 用于 mysql 控制台。 600mb 数据库在 30 秒内导入。使用 xampp,方法:cmd > cd xampp_dir/mysql/bin > mysql -h localhost -u root db_name > 输入密码,然后从上述解决方案的第 4 步。【参考方案7】:

您无需编辑php.ini 或任何东西。 我建议最好的方法是使用 MySQL WorkBench

只需按照步骤操作即可。

安装 MySQL WorkBench 6.0

并且在“导航面板”(左侧)中,“管理”下有选项调用“数据导入”。点击它并[按照以下步骤]

    点击导入独立文件并选择您的 SQL 文件 转到我的文档并创建文件夹调用"dump"[simple]。 现在您可以上传文件了。点击下方的导入按钮。

【讨论】:

【参考方案8】:

对于 ubuntu 14.04 使用这个:

1- 使用 gedit 或 nano 打开 php.ini: 须藤gedit /etc/php5/apache2/php.ini 2- 找到“upload_max_size”,然后将这一行替换为以下几行: max_execution_time = 259200 最大输入时间 = 259200 memory_limit = 1000M upload_max_filesize = 750M post_max_size = 750M 3- 保存 php.ini 并关闭编辑器 4-重启apache2: sudo 服务 apache2 重启 5- 现已开放 localhost://phpmyadmin/ 在浏览器中并上传您的 database.sql

【讨论】:

谢谢,它有帮助。我有 Ubuntu 18.04,对我来说,php.ini 的路径是 /etc/php/7.2/apache2/php.ini【参考方案9】:

将大数据库导入phpmyadmin有两种方法 1 从 php.ini 增加文件执行大小 2 使用命令行导入大数据库。

【讨论】:

【参考方案10】:

您也可以尝试压缩(压缩)文件。如果我无法为 phpmyadmin 访问 php.ini,它有时对我有用。如果压缩将文件大小减小到低于最大文件大小,它可能会起作用!

【讨论】:

【参考方案11】:

如果您在 Xampp 中使用 MySQL,请执行以下步骤。

在XAMPP控制面板>Apache-Config> PHP(php.ini)文件中找到以下内容

post_max_size = 8M

upload_max_filesize = 2M

max_execution_time = 30 ut_time = 60enter code here memory_limit = 8M

并根据您的需要更改它们的尺寸。 我正在使用这些值

post_max_size = 30M
upload_max_filesize = 30M
max_execution_time = 4500
max_input_time = 4500
memory_limit = 850M

【讨论】:

【参考方案12】:

    php.ini 文件中设置以下值 (C:\xampp\php\)

    max_execution_time = 0 max_input_time=259200 memory_limit = 1000M upload_max_filesize = 750M post_max_size = 750M

    打开 config.default 文件(C:\xampp\phpMyAdmin\libraries\config.default)并设置如下值:

    $cfg['ExecTimeLimit'] = 0;

    然后打开 config.inc 文件(C:\xampp\phpMyAdmin\config.inc)。并粘贴到以下行:

    $cfg['UploadDir'] = 'upload';

    转到 phpMyAdmin(C:\xampp\phpMyAdmin) 文件夹并创建名为 upload 的文件夹并将您的数据库粘贴到新创建的上传文件夹(不需要压缩)

    最后,进入 phpMyAdmin 并上传您的数据库(请在下拉菜单中选择您的数据库)

    这就是宝贝! :)

*这需要很多时间。在我的 db(266mb) 中需要 50 分钟才能上传。所以要有耐心! *

【讨论】:

【参考方案13】:

如果您不想更改设置或玩命令行。 可以选择压缩文件并在 phpMyAdmin 中上传。它应该会大大减小尺寸。

【讨论】:

以上是关于无法通过 phpmyadmin 导入数据库文件过大的主要内容,如果未能解决你的问题,请参考以下文章

无法导入从 phpMyAdmin 导出的 sql 文件

无法使用PHPMyAdmin导入数据库

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

phpmyadmin (CSV) 中的 MySQL 导入阻塞引号

无法将 CSV 导入 PhpMyAdmin

怎样使用phpmyadmin导入大数据的方法