我建立了一个表,一个字段类型设置为longtext, 长度想设置的比较大一些,但是总是提示我最大只能设置65535,请问是什么原因?

解决方案 »

  1.   

    mysql无此限制
    ·         LONGTEXT最大长度为4,294,967,295或4GB(232–1)字符的TEXT列。
    可以的解释是存储longtext的长度用的是两个字节   2的八次方是65536  最长能表示65536个字符
      

  2.   

    问题其实是这样的,我存了一个很长的字符串到该列中,长度大于65535,我用C++和mysql交互,存的时候没有问题,但是取的时候发现取的不对了,经过测试怀疑和这个长度有关,上网搜索LONGTEXT最大长度为4,294,967,295或4GB(232–1)字符的TEXT列。但是为什么我设置的时候提示我最大程度为65535?
      

  3.   

    检查你的系统变量max_allowed_packet,这个控制了你的整个SQL语句的长度。
      

  4.   

    我查了my.conf
    其中有关max_allowed_packet定义有两处,分别为:
    [mysqld]
    max_allowed_packet = 1M
    [mysqldump]
    max_allowed_packet = 16M我的理解是[mysqld]是对我程序取长字符串有影响的,但是我的长字符串是大于65535B,但是小于1M的,但是我取的时候还是出错,蛮奇怪的是我在存这个长字符串的时候没有问题。