我应该如何在 phpmyadmin 中导入一个巨大的 table

how should i import a huge table in phpmyadmin

我有一个包含 300,000 行的 table。然后当我导入它时,它将上传近 200,000 行然后 phpmyadmin 终止上传并出现此错误:

Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\import\sql.php on line 246

注: 'on line 246'没有变化。有时是 130 或 182。

需要注意的是,我更改了(增加) php.ini 文件中的所有参数。 例如:

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

我仍然无法上传我巨大的 table .....!其实我的问题是时间限制。你有什么建议?

配置没问题,但是你要注意,如果你是运行 phpmyadmin 有别名conf文件,在别名里面你可以正确设置php变量到别名,并且不会受到您在全局 php.ini 中设置的指令的影响,请检查别名(如果是这样)

Alias /phpmyadmin "/path/phpmyadmin4.4.6/"
<Directory "/path/phpmyadmin4.4.6/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
  <IfDefine APACHE24>
    Require local
  </IfDefine>
  <IfDefine !APACHE24>
    Order Deny,Allow
      Deny from all
      Allow from localhost ::1 127.0.0.1
    </IfDefine>
  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>

我可以在 @vohuman 的帮助下解决我的问题。

要摆脱导入(甚至导出)的限制,你应该使用命令行,或者用@vohuman的话来说:

@vohuman: 'Log into mysql shell and source the sql file'

因此,要导入 .sql 文件(对于 windows 和 xampp),您应该执行以下操作:

step1:把你的.sql文件放到C盘,那么你的文件地址就是:c:\filename.sql

步骤 2: 打开 CMD 并输入:

c:\xampp\mysql\bin

第 3 步: 然后在命令行中输入此行以导入您的文件:

mysql -u {username} -p {databasename} < c:\filename.sql
  • By default {username} is root.
  • If you use the password, you should use -p{passwordname} in above line. (between -p and passwordname isn't any space.)
  • Also you can use any other address. c:\filename.sql is for example.

step4: 最后,检查你的数据库和上传的文件。 (例如使用 phpmyadmin)