美文网首页程序员工具癖@IT·互联网
phpmyadmin导入sql文件大小限制

phpmyadmin导入sql文件大小限制

作者: 帅气的波波 | 来源:发表于2017-04-27 09:38 被阅读0次

    昨天部署了一套考试系统,打算将原来考试系统的数据库直接导入新系统,省去录入数据的苦恼。无奈发现phpmyadmin导入数据限制大小为2M。网上搜索了很多解决办法,将其综合最终导入成功。具体步骤:

    1.打开PHP配置文件php.ini。查找upload_max_filesize 和post_max_size 把他们的值修改的大一点(100M)。如果上传的文件很大,还需进行以下修改:

    max_execution_time(php页面执行最大时间)

    max_input_time(php页面接受数据最大时间)

    memory_limit(php页面占用的最大内存)

    这是因为phpmyadmin上传大文件时,php页面的执行时间、内存占用也势必变得更长更大,其需要php运行环境的配合,光修改上传文件大小限制是不够的。

    2.打开 phpmyadmin 目录下的config.inc.php 文件,查找$cfg[‘ExecTimeLimit’]配置选项,默认值是300,需要修改为0,即没有时间限制。

    实际上,在我的环境中$cfg[‘ExecTimeLimit’]的配置项在文件config.default.php中(612行)。

    3.打开 phpmyadmin 目录下的import.php 文件 修改$memory_limit 的值

    if(empty($memory_limit)){

    $memory_limit=2*1024*1024;

    }

    if(($memory_limit)==-1){

    $memory_limit=10*1024*1024;

    }

    都改成100*1024*1024(根据自己实际情况)。

    说明:首选读取php.ini配置文件中的内存配置选项memory_limit,如果为空则默认内存大小限制为2M,如果没有限制则内存大小限制为10M,你可以结合你php.ini配置文件中的相关信息修改这段代码。

    注意此时重启服务,会发现文件限制的大小已经变成了100M。但是当我欣喜的导入的时候碰到了另一个问题:

    Error: mysql server has gone away。

    解决的方法就是找到mysql安装目录,找到my.ini文件,在文件的最后添加:max_allowed_packet = 100M(也可以设置自己需要的大小)。 max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。

    不得不说的是,我在配置这个参数之前,在my.ini中还添加了两个参数:

    在my.cnf文件中添加或者修改以下两个变量:

    wait_timeout=2880000

    interactive_timeout = 2880000

    关于两个变量的具体说明可以google或者看官方手册。

    (虽然这里说的是my.cnf,但是我是在my.ini中添加的)

    最后,成功导入了一个30多M的数据库备份。

    相关文章

      网友评论

        本文标题:phpmyadmin导入sql文件大小限制

        本文链接:https://www.haomeiwen.com/subject/mnrgzttx.html