【问题标题】:How to import large sql file in phpmyadmin如何在 phpmyadmin 中导入大型 sql 文件
【发布时间】:2012-07-03 13:35:39
【问题描述】:

我想导入一个大约 12 mb 的 sql 文件。但它在加载时引起问题。有没有不分割sql文件的方法上传?

【问题讨论】:

标签: mysql phpmyadmin


【解决方案1】:

更改您的服务器设置以允许上传大于 12 mb 的文件,您应该没问题。 通常服务器设置为 5 到 8 mb 用于文件上传。

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
  • 实际上在发布此答案时,这是最常见的错误(3 年前),文件上传默认不够大。他正在使用 phpmyadmin == webinterface。导入 == 从光盘上传。上传 == 服务器设置。服务器设置 == 3 年前为 5 或 8 mb 的默认值。所以我看不出这怎么不能提供答案。是的,我没有亲自指导他如何设置,因为他没有提供他正在使用的服务器,apache,ngix,iis,其他。
【解决方案2】:

您必须编辑 php.ini 文件。更改以下 upload_max_filesize post_max_size 以适应您的文件大小。

尝试运行phpinfo() 以查看其当前值。如果您不能随意更改 php.ini 文件,请直接尝试ini_set()

如果这也不是一个选项,您不妨试试bigdump

【讨论】:

    【解决方案3】:

    尝试根据您的操作系统的口味从 mysql 控制台导入它。

    mysql -u {DB-USER-NAME} -p {DB-NAME} < {db.file.sql path}
    

    或者如果它在远程服务器上,使用 -h 标志来指定主机。

    mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}
    

    【讨论】:

    • 好的,谢谢大家回复。我在 php.ini 中进行更改并压缩文件。它对我有用:)
    • 最快的方法!
    • 这是一个很好的答案。对于任何可能不是超级精明的人,您可以将您的数据库文件上传到您主机上的文件管理器,然后在您的主机上使用 SSH 在本地操作。这比在您的服务器上安装mysql 只进行一次迁移要容易得多。谢谢你们的帮助! (另外,我不需要括号)
    • 对于那些想知道的人,您需要浏览到您的 MySQL/bin 文件夹以运行该命令。工作得很好。谢谢。
    • 他们没有密码怎么办?使用具有默认用户名 root 的数据库?使用此命令它要求输入密码。
    【解决方案4】:

    编辑位于 phpmyadmin 目录中的 config.inc.php 文件。就我而言,它位于C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php

    找到上面有$cfg['UploadDir']的那一行,更新为$cfg['UploadDir'] = 'upload';

    然后,在 phpmyadmin 目录中创建一个名为“upload”的目录(对我来说,在 C:\wamp\apps\phpmyadmin3.2.0.1\upload\)。

    然后将您尝试导入的大型 SQL 文件放入新的upload 目录中。现在,当您进入 phpmyadmin 控制台中的 db 导入页面时,您会注意到一个以前不存在的下拉菜单 - 它包含您刚刚创建的上传目录中的所有 sql 文件。您现在可以选择它并开始导入。

    如果您没有在 Windows 上使用 WAMP,那么我相信您可以轻松适应您的环境。

    参考:http://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/

    【讨论】:

    • 对于更新版本的 phpMyAdmin,$cfg['UploadDir'] 变量根本不存在;但是,只需在文件的新行上添加 var,此解决方案仍然有效。
    • 该变量在config.default.php 中找到,属于同一目录,我使用的是 phpmyadmin 版本 4.6.4
    • 无法再编辑之前的评论,目录是libraries/config.default.php
    • 花了两天时间尝试 MySQL 命令行但结果失败后的绝妙解决方案。
    【解决方案5】:

    只需一行就完成了(确保 mysql 命令可作为全局使用,或者直接进入 mysql 安装文件夹并进入 bin 文件夹)

    mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 
    

    这里

    • u 代表用户
    • p 代表密码
    • D 代表数据库

    ---不要忘记在数据库名称后添加&lt; 签名---

    名称和扩展名的完整文件路径可以像

    c:\folder_name\"folder name"\sql_file.sql

    ---如果您的文件夹和文件名包含空格而不是使用双引号将它们绑定---

    提示和注意:您可以在-p 之后写密码,但不建议这样做,因为它会显示给当时正在观看您屏幕的其他人,如果您不在那里写,它会询问您何时按回车执行命令。

    【讨论】:

      【解决方案6】:

      你必须做的三件事:

      在您的 php 安装的 php.ini 中(注意:取决于您是否需要 CLI、apache 或 nginx,找到正确的 php.ini 进行操作)

      post_max_size=500M
      
      upload_max_filesize=500M
      
      memory_limit=900M
      

      或设置其他值。

      重启/重新加载 apache 如果你安装了 apache 或者 php-fpm 用于 nginx 如果你使用 nginx。

      远程服务器?

      也增加max_execution_time,因为上传文件需要时间。

      NGINX 安装?

      您必须在 /etc/nginx/nginx.conf 中添加:client_max_body_size 912M;http{...}

      【讨论】:

      • 正确 - 答案。这 3 行是必须的
      • 这必须添加到您的 apache 目录,而不是 cli 目录(至少在我的 Ubuntu 机器上测试过)
      • 将其更改为 /etc/php/7.1/apache2/php.ini 无效
      • @RickSanchez 你确定你在 apache 上运行这个 php 版本吗?请运行phpinfo() 并验证值是否已正确设置并且服务器已重新启动
      • 别忘了提高 php ini 中的 max_execution_time 值并重启 apache
      【解决方案7】:

      通过在httpd.conf 文件中进行以下配置,我能够导入一个大的.sql 文件:

      Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
      <Directory "C:/xampp/phpMyAdmin">
          AllowOverride AuthConfig
          Require all granted
      
          php_admin_value upload_max_filesize 128M
          php_admin_value post_max_size 128M
          php_admin_value max_execution_time 360
          php_admin_value max_input_time 360
      </Directory>
      

      【讨论】:

        【解决方案8】:

        我偶然发现了一篇文章,这对我来说效果最好

        1. 使用您喜欢的代码编辑器打开 phpmyadmin 目录中的 config.inc.php 文件。在您本地的 MAMP 环境中,它应该位于此处:

        硬盘 » 应用程序 » MAMP » bin » config.inc.php

        1. 搜索短语$cfg[‘UploadDir’] - 它看起来像这样:

        $cfg['UploadDir'] = '';

        1. 将其更改为如下所示:

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

        1. 然后,在该 phpmyadmin 目录中,创建一个新文件夹并将其命名为上传。

        2. 将您尝试导入的大型 .sql 文件放入新的上传文件夹中。

        3. 现在,下次您将数据库导入 phpMyAdmin 时,您会在“要导入的文件”部分的标准浏览区域正下方看到一个新的下拉字段。

        【讨论】:

          【解决方案9】:

          不使用 phpmyadmin 上传大文件的最佳方式。导致 phpmyadin 首先使用 php 上传类上传文件,然后执行导致大部分时间发生超时的 sql。

          最好的方法是: 进入wamp文件夹>bin>mysql>bin目录然后写这一行

          mysql -u root -p listnames 这里 listnames 是数据库名称,首先请创建空数据库 latestdb.sql 是您的数据所在的 sql 文件名。

          但是一件重要的事情是你的数据库文件是否有 unicode 数据。您必须在任何一行之前打开您的 latestdb.sql 文件和一行。该行是:

          设置名称 utf8; 然后你的命令模式运行这个脚本代码

          【讨论】:

            【解决方案10】:

            LINUX 用户解决方案(使用 sudo 运行)

            创建“上传”和“保存”目录:

            mkdir /etc/phpmyadmin/upload
            mkdir /etc/phpmyadmin/save
            chmod a+w /etc/phpmyadmin/upload
            chmod a+w /etc/phpmyadmin/save
            

            然后编辑phpmyadmin的配置文件:

            gedit /etc/phpmyadmin/config.inc.php
            

            最后为“上传”和“保存”目录添加绝对路径:

            $cfg['UploadDir'] = '/etc/phpmyadmin/upload';
            $cfg['SaveDir'] = '/etc/phpmyadmin/save';
            

            现在,只需将文件放在/etc/phpmyadmin/upload 文件夹中,然后您就可以从 phpmyadmin 中选择它们。

            希望对您有所帮助。

            【讨论】:

            • 当我点击上传表单上的提交按钮时,phpmyadmin 会给我一个File could not be read! 消息。现在正在解决这个问题。
            • @JoeRocc 您找到解决问题的方法了吗?也许这是一个许可或所有权问题。试试sudo chmod 777 your-filename.sql
            • 775。不是 777。不应该建议将 777 设置为在实时服务器上运行。它存在安全问题。
            【解决方案11】:

            为此,您必须编辑 php.ini 文件,如果您使用的是 ubuntu 服务器,此链接 Upload large file in phpMyAdmin 可能会对您有所帮助。

            【讨论】:

            • 谢谢你,太完美了。
            【解决方案12】:

            我不明白为什么没有人提到最简单的方法......只是用http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/分割大文件 并在执行 vie mySQL admin 之后,从具有结构的文件开始分离生成的文件

            【讨论】:

              【解决方案13】:

              创建一个 zip 或 tar 文件并在 phpmyadmin 中上传就是这样..!

              【讨论】:

                【解决方案14】:
                1. 在文本编辑器(如记事本)中打开您的 sql 文件
                2. 全选 -> 复制
                3. 转到 phpMyAdmin,选择您的数据库并转到 SQL 选项卡
                4. 将您复制的内容粘贴到剪贴板中
                5. 它可能会弹出一个javascript错误,忽略它
                6. 执行

                【讨论】:

                • 不是一个好习惯!当你这样做时,大文本会导致大问题。最好的方法是配置 php.ini 以允许大量导入或通过 mysql 导入。
                【解决方案15】:

                共享主机的答案。最好使用这个我刚刚用来将 300mb 数据库文件导入我的服务器的小脚本。该脚本称为 Big Dump。

                provides a script to import large DB's on resource-limited servers

                【讨论】:

                • 这实际上是一个很好的解决方案,但是由于 URL 有一天可能会失效,你被否决了。请添加有关此脚本的一些信息,尤其是它的名称。
                • 它被称为大转储它阻止SQL服务器在将大型数据库文件导入服务器时停止或中断。顺便说一句,还有其他带有网址的答案可能随时被拒绝,而且没有一个被否决
                【解决方案16】:

                好的,你使用 PHPMyAdmin 但有时最好的方法是通过终端:

                • 连接到数据库:mysql -h localhost -u root -p(为用户和数据库位置切换 root 和 localhost)
                • 从转储开始导入:\. /path/to/your/file.sql
                • 去喝杯咖啡,吹嘘自己,因为您使用终端。

                就是这样。请记住,如果您在远程服务器中,则必须将 .sql 文件上传到某个文件夹。

                【讨论】:

                  【解决方案17】:

                  一种解决方案是使用命令行;

                  mysql -h yourhostname -u username -p databasename &lt; yoursqlfile.sql

                  只需确保明确说明要导入的 SQL 文件的路径即可。

                  就我而言,我使用了这个;

                  mysql -h localhost -u root -p databasename &lt; /home/ejalee/dumps/mysqlfile.sql

                  瞧!你可以走了。

                  【讨论】:

                    【解决方案18】:

                    在 MAMP 中,您可以通过以下方式加载大文件:

                    1. 在此目录中创建一个新文件夹 /MAMP/bin/phpMyAdmin/“文件夹名”

                    2. 然后编辑“/MAMP/bin/phpMyAdmin/config.inc.php”第531行:

                         $cfg['UploadDir']= 'folderName';   
                      
                    3. 将您的 .sql 或 .csv 文件复制到此文件夹中。

                    4. 现在您将在“PhpMyAdmin”中有另一个选项:从 网络服务器上传目录newFolder/:你可以选择你的文件并导入 它。

                      您现在可以加载任何文件!

                    【讨论】:

                      【解决方案19】:

                      我制作了一个 PHP 脚本,旨在导入由 phpmyadmin 生成的大型数据库转储。它叫做 PETMI,你可以在这里下载它[project page][gitlab page]。已经用 1GB 的数据库测试过了。

                      【讨论】:

                        【解决方案20】:

                        PHPmyadmin 也接受 gzip 格式的压缩文件,因此您可以 gzip 文件(如果没有,请使用 7Zip)并上传压缩文件。由于它是一个文本文件,它会有一个很好的压缩率。

                        【讨论】:

                          【解决方案21】:
                          /Applications/XAMPP/xamppfiles/etc/php.ini
                          

                          首先找到这个位置 -> 在记事本或 sublime 文本中打开 php.ini 文件 然后在 php.ini 文本中找到这个“post_max_size,upload_max_filesize,memory_limit”并改变大小,如下所示

                          post_max_size=450M
                          
                          upload_max_filesize=450M
                          
                          memory_limit=700M
                          

                          注意:在执行此操作之前,请在 xampp 或 wamp 中停止 phpmyadmin 并执行上述方法,然后 startall(xampp 或 manager-osx)它将完美运行。然后你就可以在 phpmyadmin 中上传大文件了。谢谢

                          【讨论】:

                            【解决方案22】:

                            首先,将您的 mysql 数据库复制到本地磁盘 C:\ 以便轻松定位文件,然后打开您的命令提示符。

                            同时,导航到 mysql bin 文件夹,例如,如果您使用的是 xampp,请运行或键入以下代码。

                            cd/ 这将带你到本地磁盘指针
                            cd xampp 这带你到 xampp 文件夹
                            cd mysql 这带你到mysql文件夹
                            cd bin 这带你到 bin 文件夹

                            然后运行下面的代码

                            mysql -u dbusername -p -D dbname

                            这将提示输入密码,如果您没有使用密码,请输入您的密码或单击输入按钮

                            【讨论】:

                              猜你喜欢
                              • 2014-04-28
                              • 2015-03-27
                              • 2017-08-18
                              • 2014-07-10
                              • 2012-07-10
                              • 2010-09-30
                              • 2015-07-24
                              相关资源
                              最近更新 更多