zoukankan      html  css  js  c++  java
  • mysql 导入时报错:Got a packet bigger than‘max_allowed_packet’bytes

    原因是max_allowed_packet 值设置过小。

    网上粘贴一段定义:

    max_allowed_packet:指代mysql服务器端和客户端在一次传送数据包的过程当中数据包的大小
    这个是定义mysql服务器端和客户端在一次传送数据包的过程当中数据包的大小
    定义过大,比如max_allowed_packet=8092,有可能服务器端太忙,来不及接收,或者网络太差,会容易造成丢包
    定义过小,会因为客户端可能无法快速接收服务器端发过来的包,一般推荐是4096

    网上说有两种方法:

    方法一,直接修改my.cnf(Linux)或者my.ini(windows)的文件,例如:

      max_allowed_packet=10M

      然后重启MySQL服务。但是我试过之后不行,原因也不得而知。

    方法二,通过MySQL自带的客户端(黑框界面),通过命令先查看目前的max_allowed_packet 值的大小:

      

    show VARIABLES like '%max_allowed_packet%';

      查出来的值的单位是字节(byte)

    设置时默认的单位也是字节,比如你要设置为100M,那么应该是100*1024*1024,执行修改命令为:

      

    set global max_allowed_packet = 100*1024*1024

    修改后需要关掉cmd窗口,然后重新打开,再次查询,才能看到修改后的新值,否则看到的还是原始值(缓存)。

     ps:具体该为多少,需要视具体情况而定,可能修改之后,还是报同样的错误,没关系,那就设置的再大一些。我因为sql文件有4个多G,最终将max_allowed_packet设置成了1G(即,1024*1024*1024)

  • 相关阅读:
    HTTP断点续传 规格严格
    Java Shutdown 规格严格
    linux 命令源码 规格严格
    JTable调整列宽 规格严格
    linux 多CPU 规格严格
    Hello can not find git path 规格严格
    Kill 规格严格
    拜拜牛人 规格严格
    Swing 规格严格
    Debugging hangs in JVM (on AIX but methodology applicable to other platforms) 规格严格
  • 原文地址:https://www.cnblogs.com/zjfblog/p/8143012.html
Copyright © 2011-2022 走看看