我用vs2008连接mysql时,在插入数据的时候,报错“连接已被禁止”。在插入这条数据时,有个字段是text型的,里面的数据非常长一条数据1M当我把text型的数据变小是,不会报错,一切正常。可是我就要用那么大的数据,该怎么办?

解决方案 »

  1.   

    两个注意事项,
    1. 如果你使用的是text类型字段,它的最大长度是2^16,也就是说是64KB,小于1M,超长
       想支持大的,使用MEDIUMTEXT或者LONGTEXT
    2. 你的[mysqld]有一个变量:max_allowed_packet
       应该让它大于1MB
       如我这里设置的是64M
    mysql> show variables like 'max%pack%';
    +--------------------+----------+
    | Variable_name      | Value    |
    +--------------------+----------+
    | max_allowed_packet | 67107840 |
    +--------------------+----------+
    1 row in set (0.00 sec)
      

  2.   

    我要怎么设置max_allowed_packet的值呢?
      

  3.   

    1. 直接在MYSQL的参数文件中修改
    [mysqld]
    ...
    max_allowed_packet=1234566788
    ...2. 执行SQL语句,仅本次连接有效set global max_allowed_packet=123456778
      

  4.   

    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html