如果你用phpMyAdmin工具管理MySQL数据库的话,在导入MySQL数据的时候很可能会遇到数据库文件太大不能导入的问题,这个锅其实不应该让phpMyAdmin来背,因为PHP本身默认允许上传文件的大小就不能超过2M,phpMyAdmin本身是php写的工具,那也只能这样子了。那怎么破?方法就是修改PHP的配置文件php.ini,让它把上传文件的限制放大。
找到真正的PHP配置文件php.ini
那么php.ini的文件在哪里呢?不同的操作系统,不同的web套件组合,不同的PHP版本可能都不一样,所以我们在搜索问题解决方案的时候一定要先了解一下大概的原理,而不是随便找一篇帖子蒙着头照抄,最后不但问题没解决,还把系统弄崩溃了。以大伟哥自己使用的环境为例,我本地用的是Ubuntu Server 16.04系统,使用默认安装的LAMP- server, 目前的php.ini是在/etc/php/7.0/apache2目录下。但是在阿里云ECS上,我用的还是Ubuntu 14.04, Apache 2.4.29,PHP5.5,php.ini的实际位置却是在/etc/php5/fpm/php.ini。
所以了解自己的服务器的套件以及工作模式是解决问题的最基本要求。如果你不是很确定的话,可以写个带有phpinfo() 函数的php文件,在浏览器里打开,看看Loaded Configuration File里面到底加载的是哪一个文件:
需要修改的参数
能够影响到上传文件大小的主要是以下几个参数:
- file_uploads:是否允许通过HTTP上传文件的开关。默认为ON即是开
- upload_max_filesize:允许上传文件大小的最大值。默认为2M,我们修改为64M
- post_max_size:指通过表单POST提交给PHP的最大值,包括表单里的所有值。默认为8M,修改为64M
另外几个有可能影响到上传的参数是
- max_execution_time:PHP运行的最大时间值,默认30秒
- max_input_time:接收数据所需的最大时间,默认60秒
- memory_limit:PHP允许使用的最大内存,默认128M
如果运行超时,可以把这几个参数也适当调大些。
修改完成后重启一下web服务器,新的PHP配置就会生效,你就可以愉快地导入比较大的MySQL数据库了。不过,在大伟哥看来,最爽的办法还是使用命令行下的mysqldump工具,一条命令搞定的事,弄这么多复杂的配置干啥。