纵有疾风起
人生不言弃

mysql配置max_allowed_packet详解

默认的mysql导入数据库的文件不都超过10m,但是项目中很多时候数据库文件不会就这么点。那要导入的数据库文件比较大怎么办呢

mysql中不是所有长度的sql语句都会成功的处理,有时候会根据配置文件的max_allowed_packet值限制server接受的数据包大小.

有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败,该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败.

mysql where 中的in 中参数的个数就受到max_allowed_packet 的限制,max_allowed_packet参数的默认值是1M.

修改max_allowed_packet参数的方法:

1),方法1

可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改,参数的最大值是1GB.

max_allowed_packet = 10M

下如果找不到my.cnf可以通过下面命令查找

mysql –help | grep my.cnf  

2),方法2

进入mysql server,在mysql 命令行中运行

set global max_allowed_packet = 2*1024*1024*10

然后关闭掉这此mysql server链接,再进入.

show VARIABLES like ‘%max_allowed_packet%’;

查看下max_allowed_packet是否编辑成功.

MySQL导入数据库文件最大限制2048KB和phpmyadmin导入数据最大限制2048KB的解决方法
  解决办法:

  1、打开php.ini。找到 upload_max_filesize 、 memory_limit 、 post_max_size 这三个参数!

  (在默认的情况下,php只允许最大的上传数据为2M,也就是2048KB,而极限的最大使用内存memory_limit也仅为128M,Post的最大也为2M)

  2、按您的服务器的实际性能配置进行如下改动:(注意:以下是按我的服务器性能和硬件配置进行的更改..)

  upload_max_filesize = 8M (上传最大极限设定为8M,这个应该足够一般的文件WEB上传了)

  memory_limit = 512M (因为服务器的内存为2GB,所以这里加到512M不过份吧,呵)

  post_max_size = 8M (Post数据最大也设置为8MB,这个跟upload_max一样)

  3、改完之后,我重新启动系统,再重新执行导入命令后:

  Import has been successfully finished, 399 queries executed.

  (显示导入成功,有多少个请求处理成功…)

  (备注:改完后当你在到phpMyadmin的导入命令行时,虽然(有时候可能会仍然显示为:最大限制:2048KB/Max: 2,048KiB);但实际上你已经可以导入不超过8M的MySQL数据库.sql导出的备份文件了! 另,改完php.ini后,别忘了重启一下web服务或者是服务器哟!重启后升效!)

  就此记录,希望对遇到同样问题的朋友有所帮助~

  本地测试php程序的程序,经常需要通过Phpmyadmin导入数据库文件,碰到phpmyadmin导入数据最大限制2048KB出错。

  错误提示:You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit。

  原来用phpmyadmin导入mysql数据库时,默认mysql数据库最大只能导入2M。

未经允许不得转载:起风网 » mysql配置max_allowed_packet详解
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录