北京尚网汇智科技有限公司
您当前所在的位置:尚网汇智网站建设 > 数据库技术 > 文章详细
网站建设知识
NEWS
联系我们
  • 网站建设服务电话
  • 400-883-2887
  • 公司地址:北京市昌平科技园区创意大厦2-806
  • 服务项目
    高端网站建设
    移动/微信网站建设
    手机APP开发
    OA/ERP业务系统开发
    网站维护托管
    CMS模板制作

    解决mysql执行SQL文件,报错:Got a packet bigger than “max_allowed_packet” bytes

    发布时间:2020-03-05 18:05:49
    本地执行SQL文件,每次执行到附件表时mysql就会报错提示:Got a packet bigger than 'max_allowed_packet' bytes,并终止了数据库导入操作。

    原因分析:

    项目中是把附件转换成byte数组,存入数据库类型为mediumblob的字段中。由于附件较多,导致单表数据量较大,于是大体定位到mysql会对单表数据量较大的SQL做限制。

    解决过程:

    1.进入mysql
    在DOS命令窗口输入 mysql -hlocalhost -uroot -p 回车进行mysql数据库。
    其中-h表示服务器名,localhost表示本地;
    -u为数据库用户名,root是mysql默认用户名;
    -p为密码;
    如果设置了密码,可直接在-p后链接输入,如:-p123456,用户没有设置密码,显示Enter password时,直接回车即可。
    注意,如果mysql没有安装在C盘下,需要先使用DOS命令进入mysql的安装目录下的bin目录中
    2.查看max_allowed_packet最大允许包
    输入命令 show VARIABLES like '%max_allowed_packet%';
    回车即可查看max_allowed_packet最大允许包,解释一下包大小这个东西:简单来说就是mysql把当前执行的mysql语句看作是一个包,而对这个包大小的限制是对当前mysql语句长度的限制。
    显示如下
    +--------------------------+------------+
    | Variable_name            | Value      |
    +--------------------------+------------+
    | max_allowed_packet       | 4194304    |
    | slave_max_allowed_packet | 1073741824 |
    +--------------------------+------------+
    2 rows in set, 1 warning (0.01 sec)
    可以从返回结果看出max_allowed_packet当前为4M,显然小了。
    3.更改max_allowed_packet包大小
    方案一,临时修改:输入命令 set global max_allowed_packet = 大小;  (注意,这里的大小只能填写字节。重启mysql服务后,配置将会失效!)
    方案二,修改my.ini文件,在[mysqld]部分加入 max_allowed_packet=大小

    (注意,这里可以写XXM,但后面不用加";"号。如果存在max_allowed_packet,直接调整其值。重启mysql服务后,将永久生效)

    北京尚网汇智将持续为您分享网站建设相关的知识和经验。


    文章出自:北京网站建设公司-尚网汇智 https://www.net2006.com 如转载请注明出处!
    咨询服务热线
    400-883-2887
    客服电话:400-883-2887  传真:010-51654992  E-mail:support@net2006.com
    本站设计已受版权保护,任何公司及个人不得复制,违者将依法追究责任,特此声明。

    Copyright © 2005-2018 北京尚网汇智科技有限公司 版权所有 京ICP备13031271号
    查找内容: