相信很多人都知道,如果我们使用phpMyAdmin来维护mysql数据库的时候,我们经常需要做数据库备份和恢复。经常会用phpMyAdmin导入数据或者导出数据。
今天主要就是说说:phpMyAdmin导入数据库文件过大的问题,例如:我这里导入的sql文件80M时就会出错。具体的解决方法如下:
第一种方法:PhpMyAdmin特有的一个功能,就是执行已上传的SQL或者ZIP文件的导入功能。(推荐)
1、打开phpmyadmin安装目录下的config.inc.php,例如:c:/phpmyadmin/config.inc.php
2、找到 $cfg[‘UploadDir’] 这个字眼 (没有就自己加)
3、改成 $cfg[‘UploadDir’] = ‘upload’; //用upload代表上传的文件夹名字,告诉大家这个文件夹名是随意写的,不要写中文即可!
4、然后,新建一个文件夹叫 upload。例如:c:/phpmyadmin/upload;
5、然后,把你的大的sql文件上传到这个 upload文件夹。例如:我这里是把 backup.sql 文件上传到这里的。
从上图可以清楚的看到:
现在我们可以直接,从网站服务器上传文件夹 upload/ 中选择 backup.sql”。点击“执行”导入。
即使限制100M、1000M的大数据还是很快导入MYSQL数据库了。
注意:
一般超时时间是300秒,如果超时就要去修改另外一个文件的配置,例如:c:/phpmyadmin/libraries/config.default.php (友情提示:phpmyadmin的安装目录只是一个举例,你们装的不一定和我一样,不要死磕这个目录怎么找不到?一定要结合自身的情况)。
找到$cfg[‘ExecTimeLimit’],并改为$cfg[‘ExecTimeLimit’] = 0 代表无限制!
然后,重启mysql服务!
第二种方法:修改PHP配置文件php.ini
在phpmyadmin中显示上传文件最大问8M,可我的单个sql文件超过80M,尝试上传,上传依然可以进行,但上传到8M即操作终止,phpmyadmin提示上传失败。
该问题实际上是php的配置问题,在php.ini中有两个参数需要关注:
upload_max_filesize 100m
post_max_size 100m
唯一的原则就是,保证:post_max_size >= upload_max_filesize
拓展
上传文件的实现可能还跟以下php配置参数有关,具体大家可以去看一下自己的php.ini配置:
开放上传文件功能:
file_uploads on
上传文件的临时文件夹:
upload_tmp_dir = ''
最大执行时间:以秒为单位!(如果文件过大,将会发生php执行超时)
max_execution_time = 100
最大输入时间:以秒为单位!(接收数据阶段的最大时间)
max_input_time = 90
最大内存限制:(每个php请求的最大内存空间)
memory_limit = 128M //原则是:memory_limit >= post_max_size >= upload_max_filesize