如何在phpmyadmin中导入大型sql文件

时间:2012-07-03 06:24:39

标签: mysql phpmyadmin

我想导入大约12 MB的sql文件。但它在加载时造成问题。有没有办法上传它而不拆分sql文件?

19 个答案:

答案 0 :(得分:80)

尝试根据操作系统的喜好从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}

答案 1 :(得分:55)

你需要做的3件事:

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

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

或设置其他值。

重新启动/重新加载 apache如果您安装了apache,或者如果您使用nginx则使用php-fpm for nginx。

远程服务器?

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

NGINX安装?

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

答案 2 :(得分:15)

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中选择它们。

enter image description here

希望得到这个帮助。

答案 3 :(得分:12)

只需一行即可完成(确保mysql命令可用作全局或只需转到mysql安装文件夹并进入bin文件夹)

mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 

下面

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

---请勿忘记在数据库名称后添加<签名---

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

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

---如果您的文件夹和文件名称包含空格而不是使用双重语录---

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

答案 4 :(得分:6)

我可以通过在.sql文件中进行以下配置来导入大型httpd.conf文件:

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>

答案 5 :(得分:6)

创建一个zip或tar文件,并在phpmyadmin中上传,这就是它。!

答案 6 :(得分:3)

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

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

如果这也不是一个选项,您可能想尝试bigdump

答案 7 :(得分:2)

为此您必须编辑php.ini文件,如果您使用的是ubuntu服务器,那么链接Logback可能对您有帮助。

答案 8 :(得分:1)

我不明白为什么没有人提到最简单的方法....只需用http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/拆分大文件 并且在执行vie mySQL之后,从具有Structure

的文件开始生成分离的生成文件

答案 9 :(得分:1)

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

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

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

答案 10 :(得分:0)

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

最好的方法是: 输入wamp文件夹&gt; bin&gt; mysql&gt; bin dirrectory然后写下这一行

mysql -u root -p listnames&lt; latestdb.sql 这里listnames是数据库名称,请先创建空数据库 并且latestdb.sql是您的数据存在的sql文件名。

但重要的是,如果您的数据库文件包含unicode数据。您必须在任何行之前打开您的latestdb.sql文件和一行。这条线是:

SET NAMES utf8; 然后你的命令模式运行这个脚本代码

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

  1. 使用您喜欢的代码编辑器打开phpmyadmin目录中的config.inc.php文件。在您当地的MAMP环境中,它应位于:
  2. 硬盘»应用程序»MAMP»bin»config.inc.php

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

      1. 将其更改为:
      2. $cfg['UploadDir'] = 'upload';

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

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

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

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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

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

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

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

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

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

答案 15 :(得分:0)

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

答案 16 :(得分:0)

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

答案 17 :(得分:-1)

共享托管的答案。最好使用我刚才用来将300mb DB文件导入服务器的这个小脚本。该脚本称为Big Dump。

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

答案 18 :(得分:-1)

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

mysql -h yourhostname -u username -p databasename < yoursqlfile.sql

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

就我而言,我使用了它;

mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql

Voila!你很好。