修改phpmyadmin不能导入大文件的限制

情景:我需要导入一张1.03GB的数据表,但是phpmyadmin导入文件默认为不能超过2M。因此需要修改phpmyadmin导入文件的大小限制。

1.phpmyadmin的导入也就是php完成文件上传的过程,因此先修改配置文件php.ini的上传相关参数:
  1.1修改上传文件大小
  upload_max_filesize   最大上传文件大小参数,默认为2M。修改成1500M,即upload_max_filesize = 1500M
  post_max_size       允许POST的数据最大字节长度参数,默认为8M。修改成1500M,即post_max_size = 1500M
  1.2修改php上传环境(因为php上传大文件时,页面执行时间,占用内存会变高)
  max_execution_time  php页面执行最大时间参数。修改成300s,即max_excution_time = 300
  max_input_time    php页面接受数据最大时间参数。修改成300s,即max_input_time = 300
  memory_limit     php页面占用的最大内存参数。修改成128M,即memory_limit = 128M
  
2.重新导入数据表,但是浏览器页面出现"提示已重置"等错误信息,查看nginx错误日志。

2019/02/25 14:23:10 [error] 26551#26551: *40 client intended to send too large body: 1109221482 bytes, 
client: 120.36.255.19, server: localhost, request: "POST /phpMyAdmin/import.php HTTP/1.1", host: "48.107.92.147"
2019/02/25 15:17:32 [error] 26664#26664: *3 upstream timed out (110: Connection timed out) while reading response header from upstream,
client: 120.36.255.19, server: localhost, request: "POST /phpMyAdmin/import.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "48.107.92.147"

即:一个是尝试发送大数据包失败,一个是连接超时。需要修改nginx配置文件nginx.conf

...
http {
      ...
      client_max_body_size     1500M; #设置网页上传文件的最大值
      proxy_connect_timeout    600;   #10分钟
      proxy_read_timeout       600;   #10分钟
      proxy_send_timeout       600;   #10分钟
      ...
      server {
          ...
          error_log /data/wwwlogs/nginx.error.log  error;
          ...
      }
      ...
  }
...

同时设置mysql接收文件的最大值:
SHOW VARIABLES LIKE "max_allowed_packet";
SET GLOBAL max_allowed_packet = 1024*1024*1500;

3.重新导入数据表,成功。


  

猜你喜欢

转载自www.cnblogs.com/xincanzhe/p/10440939.html