我在 php 7.0.7 和 nginx 1.4.6 上使用 phpmyadmin (版本信息:4.0.10deb1)。当我尝试将 csv 文件导入到其中一个表时,我看到 phpmyadmin 屏幕上指示的允许最大大小是 2,048KiB 。然后我更改了 php.ini 中的设置(/etc/php/7.0/fpm/php.ini 和 /etc/php/7.0/cli/php.ini):
upload_max_filesize = 150M
post_max_size = 150M
memory_limit = -1
max_execution_time = 5000
max_input_time = 5000
更改了 /etc/nginx/nginx.conf 中的设置:
client_max_body_size 150M;
并重新启动 nginx:
service nginx restart
但什么都没有改变。并且导入会失败。我该如何解决这个问题?谢谢。
我咨询了我的DigitalOcean技术支持并找到了原因:我重新启动了Nginx,但没有重新启动php-fpm,这是Nginx的PHP进程。
我尝试
service php7.0-fpm restart
后,phpMyAdmin 现在显示导入限制(最大:150MiB)。导入工作正常!
您必须在 my.ini 或 my.cnf 文件中更改 mysql 服务器设置,方法是在 [mysqld] 部分下包含单行:
max_allowed_packet=500M
然后重新启动MySQL服务器。如果 500M 不够,请使用其他值。
就我而言,经过长时间的搜索,我发现了一个新世界,这为我节省了太多的时间和精力(即SSH)
通过 SCP 上传,然后通过 SSH 导入。
优点:
1- 与传统方法相比非常快。
2-没有大小限制,无需编辑任何文件。
缺点:
事实上,它不是视觉过程,所以它需要输入一些命令,你需要一些时间来熟悉它,你可能需要继续搜索一段时间,但老实说,最后你会知道这是值得的.
因此,首先将数据库文件上传到服务器中的某个位置(上传到哪里并不重要)。
scp path to/your file.sql user@server:/path-to-save-the-file
(提示时输入密码)(capnel 用户,出现在 cpanel 文件管理器的顶部,例如 home3/user/public_html/..)
请注意以下几点:
a. in some cases you will need a ssh key so look it up if that's your case.
b. If you are uploading folder and its content you need to add -r flag(i.e. scp -r ).
c. in my case i was uploading to aws cloud so -i flag is required in this case.
现在,通过 ssh 连接到您的服务器(我有 Windows 10 机器,因此可以从 powershell、bash 或 cmd)
ssh user@server
(提示时输入密码)
就我而言,aws 是( ssh -i key.pem ec2-user@Public IPv4 DNS )
cd /path-where-you- have-saved-the-file
然后..
mysql -u username -p databsename < your-file.sql (replace username and database name) (enter db user password when prompt).
简单的解决方案 在 yout .ini 文件中,更改
post_max_size
完成!