无法通过phpmyadmin导入数据库

时间:2013-04-27 10:49:38

标签: php mysql nginx phpmyadmin apache2

当我尝试上传数据库(794 kb)时出现错误:

No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.

我已经阅读了很多关于此错误的答案,但我无法找到并且决定和答案对我有用。

我的服务器:

Ubuntu 12.10服务器

Apache / 2.2.22(apache2-mpm-itk);

MySQL客户端版本:5.5.27 ;

phpmyadmin 3.4.11.1deb1 ;

的nginx / 1.2.1

PHP 5.4.6 ;

/ etc / nginx / default

中配置phpmyadmin
 location /phpmyadmin {

                root /usr/share/phpmyadmin;
                index index.php;

                proxy_pass http://backend/phpmyadmin;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_connect_timeout 120;
                proxy_send_timeout 120;
                proxy_read_timeout 180;

}

php.ini config

file_uploads = On
upload_tmp_dir = /var/tmp
upload_max_filesize = 128M
max_file_uploads = 30
post_max_size = 128M

谢谢!

4 个答案:

答案 0 :(得分:5)

感谢@denys281,这对我有所帮助:

chmod -R 777 /var/lib/phpmyadmin/tmp

答案 1 :(得分:2)

chown apache-user /var/lib/phpmyadmin/tmp

apache-user 替换为 / etc / apache2 / envvars 中配置的用户。寻找这些设置:

export APACHE_RUN_USER=apache-user
export APACHE_RUN_GROUP=apache-group

通过这种方式,您将为在Web服务器上运行的用户授予访问临时目录的权限,而无需将其设置为777(对所有用户开放)。

答案 2 :(得分:0)

将“upload_max_filesize = 128M”减少1 MB左右。这招将起作用

答案 3 :(得分:0)

在我的基本php.ini配置中,我已经禁用了file_uploads并限制了上传大小,因此对于每个vhost,如果需要,这些值都会被修改。

PMA使用自己的apache配置,可在以下位置找到:

/etc/phpmyadmin/apache.conf

因此,为了启用文件大小限制为10Mb的文件上传,我编辑了这样的文件:

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    # Enable File loads if required
    php_admin_flag file_uploads On
    php_admin_flag post_max_size 10M
    php_admin_flag upload_max_filesize 10M

    <IfModule mod_php5.c>
    ...
    </IfModule>
    <IfModule mod_php.c>
    ...
    </IfModule>
</Directory>

不要忘记重新加载Apache服务器配置:

Ubuntu&lt; 16.04

service apache2 reload

Ubuntu = 16.04

systemctl reload apache2