解决phpMyAdmin导入数据文件最大限制2MB问题

 更新时间:2016年11月25日 17:37  点击:1592
phpMyAdmin是各大站长常用的一个数据导入导出工具了,但它默认只能导入2MB大小的数据了,如果要导入大数据我们需要进行简单的配置,下文一起来看看吧。

phpMyAdmin使用方便,已成为大多数站长的常用工具,对于小型网站来讲phpmyadmin已经绰绰有余了,但是对于中大型网站,在数据库较为庞大的时候,phpmyadmin就显得力不从心了!

当使用 phpMyAdmin 导入的数据库大小大于 2M 的时候,会出现如下提示:
No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.

一般情况下,phpMyAdmin最大限制上传2M以内的文件,但是当网站运营一段时间后,即使把sql格式的数据库压缩成zip格式,想变成2M以内是不太现实的。
个人并不推荐使用phpMyAdmin来导入大数据库,因为大多数用户使用的是虚拟主机,很多文件没有服务器权限是无法修改的,而且phpmyadmin对大数据库的执行效率也非常低,容易出现错误。


导入大数据库的解决方案

推荐使用 BigDump工具 来进行导入大数据库的操作,下载地址和使用方法见:用BigDump工具导入超大MySQL数据库备份文件
如果你很执着一定要用phpmyadmin来进行数据库导入操作,网络上虽然可以找到很多资料,但大多数都不全,只解决了一部分问题,所以我整理出了相对比较靠谱的方案,
以下是我搜集的一些解决phpMyAdmin上传文件大小限制的方法

方案一(简单)

打开phpmyadmin下的配置文件 config.inc.php

 代码如下 复制代码
查找
$cfg['UploadDir'] = ”;
$cfg['SaveDir'] = ”;
给他们赋值
$cfg['UploadDir'] = ‘upload’;
$cfg['SaveDir'] = ‘save’;

修改后如果提示“配置文件现在需要绝密的短语密码(blowfish_secret)。”不用担心,

然后在 phpMyAdmin 的目录下创建两个空目录,upload 和 save,并且把要导入的数据库文件(必须是sql格式,非zip格式)传送到 upload 目录下。
登录phpMyAdmin,点导入(import) 发现多了一个 网站服务器上传文件夹

解决phpMyAdmin导入数据文件最大限制2MB问题


选择网站服务器上传的文件夹里的数据库就可以了,然后点击【执行】按钮就可以顺利导入超大型的数据库了。
方案二(繁琐)

打开PHP配置文件 php.ini

查找 upload_max_filesize 和 post_max_size 把他们的值修改的大一点
如果上传的文件很大,还需进行以下修改

 代码如下 复制代码
max_execution_time(php页面执行最大时间)
max_input_time(php页面接受数据最大时间)
memory_limit(php页面占用的最大内存)

这是因为phpmyadmin上传大文件时,php页面的执行时间、内存占用也势必变得更长更大,其需要php运行环境的配合,光修改上传文件大小限制是不够的。
打开 phpmyadmin 目录下的 config.inc.php 文件
查找 $cfg[‘ExecTimeLimit’]配置选项,默认值是300,需要修改为0,即没有时间限制。

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

解决phpMyAdmin导入数据文件最大限制2MB问题

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

下面来看一篇关于phpMyAdmin错误信息配置文件现在需要绝密的短语密码(blowfish_secret)问题的解决办法吧,希望例子能帮助到各位。

因为一些特殊原因,我需要对phpmyadmin的配置文件进行修改,但是修改后就出现问题了,一打开phpmyadmin,就出现“配置文件现在需要绝密的短语密码(blowfish_secret)。”

 

phpMyAdmin错误信息配置文件现在需要绝密的短语密码(blowfish_secret)

那就按照他的提示来吧,在配置文件里设置一个密码就是了。
打开phpmyadmin的配置文件 phpmyadmin/config.inc.php(注:php5.0为config.sample.inc.php)

查找 $cfg['blowfish_secret'] 把他的值修改下,任意数字字母都可以,也就是错误信息中提到的设置短语密码。

vi phpmyadmin/config.inc.php

 代码如下 复制代码

<?php
$cfg['Servers'][$i]['auth_type'] = 'cookie'; 
$cfg['blowfish_secret'] = 'www.111cn.net';(其中的www.111cn.net自定义)
?> 

修改以后,以后登入phpmyadmin就方便多了,但一定不要使用空密码,切记!

如果你php使用字符编码转换函数 mb_convert_encoding碰到 Call to undefined function mb_convert_encoding()问题,可参考本文章来解决。

在运行程序时发生“Fatal error: Call to undefined function
mb_convert_encoding()”致命错误,这个问题很好解决:

在php.ini中打开extension=php_mbstring扩展即可。

最后重启apache即可

测试

如:

$content = iconv("UTF-8", "gb2312//IGNORE″, $content);

如果你是碰到无法上传文件那么可能是目录权限地设置问题,但能上小文件无法上传大文件,这个就是php.ini或环境的配置问题,下文来给各位整理此类问题的解决办法。

php.ini无法上传大文件完美解决办法

1、打开php.ini(打开方式就不用说了,百度一大堆)

2、查找post_max_size
表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的
默认为8M,设置为自己需要的值,此参数建议要设置比upload_max_filesize大一些

3、查找File Uploads
是否允许通过http上传文件的开关,确认file_uploads = on

4、查找upload_tmp_dir
文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
如果系统报错提示有“XXX临时目录XXX”的话,这个目录就需要你来设置一个有效目录,没报错就不用管

5、查找upload_max_filesize
允许上传文件大小的最大值,默认为2M,设置为自己需要的值此参数建议不要超过post_max_size值,因为它受控于post_max_size值(就算upload_max_filesize设置了1G,而post_max_size只设置了2M时,大于2M的文件照样传不上去,因为它受控于post_max_size值)

6、如果要上传大于8M的文件,还需要对下面的参数也进行设置:

查找max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8M ;每个PHP页面所需要的最大内存,默认8M

nginx法上传大文件完美解决办法


1.client_body_buffer_size 尽量设置的大点,这是基于速度的考虑,如果因为设置的过小,导致上传的文件老要写磁盘,那速度就太慢了。
2.client_body_temp_path 路径要有可写权限,这个是明显的错误了。改正了就好
3.client_max_body_size 设置上传文件的最大值,这个是基于安全的考虑,我们认为正常用户不会或者基本不会上传太大的文件。
可以设置为client_max_body_size 100m;  或者按照自己的业务来设置这个值。

例子

nginx的配置。

 代码如下 复制代码

 cd /export/servers/nginx/conf/nginx.conf,在这个配置文件里面的server段里面的

location / {

    root   html;

    index  index.html index.htm;

   client_max_body_size    1000m;

  }

 加上了client_max_body_size    字段,怎么重启都不行。后来在总配置文件里面发现了分配置文件:

 代码如下 复制代码

sendfileon;
    #tcp_nopush     on;
   
    #keepalive_timeout  0;
    keepalive_timeout  65;
     
    #gzip  on;
    include domains/*;
    #include domains/chat.local;
    #include domains/chat.erp.com;
    #include domains/support.chat.com;
    #include douains/chat.com;
   
    server {
listen       80;
server_name  localhost;

于是找到了分配置文件,在分配置文件里面进行修改。分配置文件配置如下:

 代码如下 复制代码
server
{
   listen   80;
   server_name  chat.erp.360buy.com;
#  access_log    /export/servers/nginx/logs/chat.erp.360buy.com;
   location / {
   proxy_pass     http://tomcat;
client_max_body_size    1000m;
     }
}

用/export/servers/nginx/sbin/nginx -s reload重启下,上传文件的大小受限的问题就解决了。
分享下我的解决过程,希望对大家有帮助。

如果还是无法解决我们需要看看是不是php表单设置问题

这段代码分为两个文件,一个为upload.html,一个是upload.php

upload.html

 代码如下 复制代码
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="max_file_size" value="100000">
<input name="userfile" type="file">  
<input type="submit" value="上传文件">
</form>

其中,

请注意<form enctype="multipart/form-data"……>这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么。
值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。
MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。
upload.php

 代码如下 复制代码
$f=&$HTTP_POST_FILES['Myfile'];
$dest_dir=’uploads’;//设定上传目录
$dest=$dest_dir.’/’.date("ymd")."_".$f['name'];//设置文件名为日期加上文件名避免重复
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//设定上传的文件的属性
或者
<?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>

以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称为 userfile(名称可随意命名)

在使用composer update时遇到的,详细的错误消息Composer PHP Fatal error:Allowed memory size of 536870912 bytes exhausted了,下面来一起看问题解决办法


今天在运行composer update时遇到的,详细的错误消息如下:

$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted
(tried to allocate 32 bytes) in phar:///usr/local/Cellar/composer/
1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/
Rule.php on line 62
 
Fatal error: Allowed memory size of 536870912 bytes exhausted
(tried to allocate 32 bytes) in phar:///usr/local/Cellar/composer/
1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/
Rule.php on line 62
一直以为是网络原因,最近连接国外的网络不是很稳定,后来根据报错的信息Allowed memory size of 536870912 bytes exhausted提示知道可能是内存分配不够,大家知道在PHP的配置文件php.ini中有限制脚本运行内存的设置memory_limit把这个值调大一些就可以解决这个问题了。


memory_limit = 1G
当然大家也许不喜欢随随便便的改动配置文件php.ini,在帖子《Composer update runs out of memory #1898》Dynom给出了个临时的解决办法:

php -dmemory_limit=1G composer.phar update

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • phpmyadmin config.inc.php配置示例

    phpmyadmin config.inc.php配置示例...2013-09-29
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 查找php配置文件php.ini所在路径的二种方法

    通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31