一. 问题出现

使用phpMyAdmin管理mysql数据,使用图形界面导入sql语句时报错,报错内容如下:

二. 问题原因

出现了413错误,413错误是因为用户请求body的数据大于设置的值。用户请求的body的值可用Content-Length看到

可以看到请求的body大小大于6M,通过查看Nginx官网可知默认request body为1M,而设置request body的参数为client_max_body_size

三. 解决问题的方法

修改client_max_body_size,此参数的用法为:

Syntax: 	client_max_body_size size;
Default:  client_max_body_size 1m;
Context: 	http, server, location

Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Please be aware that browsers cannot correctly display this error. Setting size to 0 disables checking of client request body size. 

nginx配置文件修改:

    location /phpMyAdmin {
        root /opt;
        client_max_body_size 10m;
        index index.php;
        location ~ \.php$ {
            fastcgi_index index.php;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }

四. 参考资料

Nginx client_max_body_size的使用方法:http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size