Data truncation: Data too long for column 'XXX' at row 1

Data truncation: Data too long for column 'XXXX' at row 1


解决方法:

(1)字符编码统一:

将所有的编码都设置成utf8,jsp的contentType="text/html;charset=utf-8"
修改数据库默认编码ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 
修改表字段的编码ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

创建数据库的时候:CREATE DATABASE `database`
                                    CHARACTER SET 'utf8'
                                    COLLATE 'utf8_general_ci';

建表的时候      CREATE TABLE `database_user` (
                        `ID` varchar(40) NOT NULL default '',
                        `UserID` varchar(40) NOT NULL default '',
                      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

设置URL的时候       jdbc:mysql://localhost:3306/database?seUnicode=true&characterEncoding=UTF-8

修改mysql 安装文件下的my.ini  文件,[mysql] 下面default-character-set=UTF8 修改成utf-8或者gbk,

此文件中还有一处要改的 # created and no character set is define 下面default-character-set=UTF8 

然后在的data目录下找到相应数据库文件 找到db.opt 文件 default-character-set=UTF8   default-collation=UTF8_swedish_ci 这2行文字都要改,

再查看你表的编码和表中字段的编码格式:在表上点击右键——表讯息——DDL 可以看到表和字段的编码格式,要是跟你配置文件中的不一致的话修改就OK了,修改方法:在表上点击右键——设计表——选项——字符集 ,然后点击你表中的每个字符串字段,查看下面的字符集编码是否一致

(2)修改column ‘XXXX’  的类型

varchar 有时候确实是不够,本人就是遇到这个问题,将varchar修改为存储更大的类型,如longtext即可。

你可能感兴趣的:(数据库)