[MySQL] Data too long for column 'title' at row 1

李刚轻量级JavaEE第六章的坑。。艹李刚自己有没试过这些代码的啊,6.4这一份HqlQuery.java里需要的表,根本就跟他提供的sql脚本对不上啊。。坑爹啊,而且字符编码集也有问题。

出现这个原因是编码不统一的问题。

首先字符编码集有GBK、GB2312、UTF8,区别详见 http://down.chinaz.com/server/201111/1423_1.htm

再看了手头上的一些源代码,结论是,感觉用utf8比较合适

那出现这个问题如何修复

1.查看一下MySQL的编码集,在MySQL控制台输入 show variables like 'char%';

我们目标应该是这样

+--------------------------+------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | E:SoftwareMySQLMySQL_Serversharecharsets |
+--------------------------+------------------------------------------------+

如果里面混杂了一些gbk,gb2312的话,就要进行下面一步修改,否则的话直接跳到第3步

2. 找到配置文件my.ini的位置,我的是在E:SoftwareMySQLData,如果没有的话,按照一下步骤找到,先找到你打开MySQL的那个快捷方式,按右键属性,目标一栏会有一些参数,我的是 E:SoftwareMySQLMySQL_Serverinmysql.exe "--defaults-file=E:SoftwareMySQLDatamy.ini" "-uroot" "-p",注意红色字体就是配置文件所在位置。

打开后看到的

[mysql]

default-character-set=utf8

这里的值应该设置为utf8

3. 重启一下MySQL,再用第一步的命令查看下是否设成utf8了

4. 然后在插入之前要先加多一条语句 set names utf8;

比如

set names utf8;
INSERT INTO event_inf VALUES
(1,'2004-10-03','高兴的事情'),
(2,'2005-10-03','普通的事情'),
(3,'2004-10-04','疯狂Java筹备中'),
(4,'2005-10-05','开始疯狂Java')

这样子我就没出现Data too long for column 'title' at row 1的问题了,在select了一下看看表,确实已经插入了。

完。

ps:李刚好坑。。感觉出本 李刚书籍踩坑教程 都可以出本书了。。

原文地址:https://www.cnblogs.com/someblue/p/4125492.html