phpmyadmin导入mysql数据库sql文件最大限制2M

php配置文件php.ini中默认设置允许上传的最大文件数据为2M,因此通过phpmyadmin Web界面管理mysql数据库时,能够导入mysql数据库的最大sql文件或gzip文件大小也是2M (2048K)。如果要导入大于2M的sql数据库文件,有以下几种解决方法。

 

最直接的解决办法当然就是修改php.ini配置文件的设置,即修改默认的 upload_max_filesize = 2M, memory_limit = 128M; post_max_size = 8M 。 比如我想上传一个27M的sql数据库文件,则可以修改为 upload_max_filesize = 32M, post_max_size = 32M,post_max_size 和 memory_limit 的值至少要大于等于upload_max_filesize的设置值。增加了php.ini中的最大上传设置数据之后,重启Apache数据库,再打开phpmyadmin 就可以上传大的sql数据库文件等等。

 

另外一种方法适用于没有权限修改网站服务器php.ini文件设置的用户,可以使用phpmyadmin提供的$cfg[‘UploadDir’]方法,$cfg[‘UploadDir’]方法允许我们通过scp、ftp等文件传输方式上传数据库文件到网站服务器,然后phpmyadmin从服务器的临时目录中导入数据库文件。该上传的文件名后缀必须为.sql或者.sql.bz2 或.sql.gz 。具体步骤如下:

 

在phpMyAdmin的根目录下找到config.inc.php文件(config.sample.inc.php),打开找到$cfg[‘UploadDir’] 和$cfg[‘SaveDir’],注释为“Directories for saving/loading files from server ”,即通过$cfg[‘UploadDir’] 和$cfg[‘SaveDir’]可以导入服务器上的SQL文件到数据库,以及将从数据库导出的SQL文件保存到服务器上的目录中。

 

修改这个参数为$cfg[‘UploadDir’] = ‘ImportSQLFile’; 和 $cfg[‘SaveDir’] = ‘ExportSQLFile’;

 

再在phpMyAdmin中建立两个文件夹,ImportSQLFile和ExportSQLFile。也就是将需要导入的sql文件复制到ImportSQLFile文件夹中,上传到服务器上。选择需要导入的数据库名,选择导入(Import),就会发现在文件导入(File to import)的地方多出来一个导入服务器上的SQL文件(web server upload directory)。通过这种方法可以突破php.ini的上传文件限制。导出/备份mysql数据的时候也可以直接保存在服务器上,保存到$cfg[‘SaveDir’] = ‘ExportSQLFile’; 中指定的文件夹中。

 

另外,如果网站服务器和国外美国主机dreamhost一样支持Shell方式(SSH,SFTP,命令行)传输文件,那么通过shell方式导入Mysql数据库很大的sql文件都不成问题,直接在Mysql中使用命令:source filename.sql。

 

如果还是不能上传大于2M的数据库数据文件,可以检查一下你的phpmyadmin 版本是不是最新的,据说phpmyadmin低于 2.7.0版本会出现类似memory内存、http错误和timeout超时等各种问题,因此最好安装phpmyadmin升级到最新版本。

评论

此博客中的热门博文

FreeBSD安装Pure-FTPd及user manager for PureFTPd

debian lighttpd php ssl

解决nginx出现File not found的问题