INSERT INTO Shenzhen ( ItemId , Title , City , PostCode , X , Y , en_title ) VALUES ( 1720 , '深圳新闻-Shenzhen Post' , '深圳市' , '' , 114311218 , 22598236 , '2' )
刚刚在做一个插入操作的时候提示
1046 - Data too long for column 'Title' at row 1
解决办法如下
1,mysql的编码设置为 utf8 格式,可以从开始菜单那图形化配置,或者直接进入安装目录配置my.ini
2,在java连接数据库时这样写:
String url ="jdbc:mysql://localhost/sales?user=root&password=riskfitfeng&useUnicode=true&characterEncoding=utf-8";
3,数据库的编码为 utf8
4,数据库表编码为 utf8
5,数据库字段编码为 utf8
--------------------------------------------------------------------------------------------------------------------------------------------
最近,在用mysql做一个测试用例的时候,出现乱码。
现象:无论是从MySQL Query Browser还是Java程序插入数据库,只要插入中文字符, 就会报错“Data too long for column 'XXXXX' ”。这里,显然不是字段长度设置太短的问题。
在网上查资料,大多介绍不外乎下面集中解决方法:
1.修改Server端编码。修改character_set_xxx
2.在JDBC-URL连接后面加上&useUnicode=true&characterEncoding=UTF8
3.修改my.ini文件
去掉sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"中的STRICT_TRANS_TABLES
真是病急乱投医,所以该试的方法都试了,问题依然无法解决。
被这个问题折磨的实在不行了,最后准备卸载重装一次。再不行,就去别人的机器上试下。在备份表的SQL语句时,发现
DROP TABLE IF EXISTS `test`.`test1`;
CREATE TABLE `test`.`test1` (
column_name column_type [charset latin7]
) ENGINE=InnoDB DEFAULT CHARSET=latin7;
最后面,竟有这么一句:
DEFAULT CHARSET=latin7。
直接晕倒,明明已经在MySQL Query Browser中将表的编码设置成UTF8了,怎么是latin7。改成UTF8,问题解决。
看来,有时候不能太相信可视化的编辑器,还是直接的SQL最直接。
还有,就是查看下表的字段也有column charset选项,看是否设置正确了。
综上所述,出现乱码后,一定检查数据库服务器、库、表、字段的编码设置是否支持中文。
经过试验,只要上述都设置为UTF8,即使,URL后面不添加useUnicode=true&characterEncoding=UTF8就不会出现乱码。
分享到:
相关推荐
报错信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535 向mysql的表插件一个字段 类型为text时,或修改一个字段类型为text时,报出上面的错误。其实我对这个...
那问题来了,怎么才能匹配出中文字符呢? 本文提供两种方法。 二 演示 2.1 环境 mysql> SHOW VARIABLES LIKE "%version%"; + ————————-+——————————+ | Variable_name | ...
MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自...
(1)建立连接: MySqlConnectionsqlCon= new MySqlConnection("Database=数据库名字;Data Source=服务器的ip地址;User Id=用户名;Password=用户密码"); 或者: MySqlConnectionsqlCon= new MySqlConnection(...
查看mysql字符集MySQL 乱码的根源是的 MySQL 字符
mysql解析Json字符串插件 安装方法 1、拷贝lib_mysqludf_json_parsing.dll到mysql目录C:\Program Files\MariaDB 5.5\lib\plugin下 2、在数据库中执行 DROP FUNCTION json_get; CREATE FUNCTION json_get RETURNS ...
设置mysql字符集 mysql 乱码
Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8C\xB7' for column 'nickname' at row 1 解决方案 修改nickname的编码格式,没必要修改整个表。这种方式也不需要重启数据库,修改完即生效 ...
MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作
mysql 字符集 转换
ERROR 1366: 1366: Incorrect string value: ‘\xE6\xB0\xB4\xE7\x94\xB5…’ for column ‘introduce’ at row 1 这是因为mysql编码的问题 打开mysql mysql -u root -p 输入密码后,输入下面这一行代码来显示...
asp连接mysql字符串,使用odbc 3.51
mysql分割
亲测可用,mysql字符串相似度匹配函数。下载后直接在mysql中可以测试运行。
MYSQL修改字符集默认问题
MySql.Data.dll 下载 实例: /// <summary> /// MySQL数据库操作 /// author:hhm /// date:2012-2-22 /// </summary> public class MySqlDbHelper { #region 私有变量 private const string defaultConfigKeyName =...
输入2个中文字符串,计算2个字符串的相似度,用于相似度排序。
利用mysql中提供的所有函数,组成的一个存储过程。此存储过程主要是将传入的字符串分割为多个值,单个列。
.net用mysql.data.dll(6.5.4),修复了字符问题,这个版本非常稳定,值得拥有
mysql数据库,表 ,字段的字符集设置