ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value:

今天碰到一个相当棘手的问题,那就是ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value 。

本来在本地测试是没有任何问题的,但是一到服务器上就会出错,错误为:Mysql2::Error: Incorrect string value ,经过分析发现是中文的问题。按照理论来说以前都没有出现过这样的情况,为什么这次会出问题了呢?查看了一下,没有什么异样。于是在本地打了一个相同的环境,然后测试依旧没有问题。这个为难死了,因为每次测试,服务器上的日志都是一样的,只要是中文就会出错。无奈只有登录到服务器上去修改配置了。

首先查看的数据库的charset :

status 
show variables like ‘%char%‘

发现数据库上的charset server是latin类型的,于是乎改为utf8 ,这个要修改配置文件的,修改以后重启,发现charset确实改了,但是还是出错。去网上查了一下,又说rails4.0 的问题的,又回所mysql的问题的。但是感觉和我的情况不相似。怎么办?突然想到前几天作django的时候遇到的一个问题,于是想到会不会是collation的问题呢。于是看了一下
show table status

果真发现问题了,原来是collations的问题阿。下面就是把数据库和表的collation改了以下,提供一个笨的方法:
ALTER DATABASE 数据库的名字 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
//这两条每个数据表都要执行一次的。
ALTER TABLE  表的名字 DEFAULT CHARACTER SET utf8;
ALTER TABLE   表的名字 CONVERT TO CHARACTER SET utf8;

stackoverflow的解决方案类似:
ALTER TABLE `[table]`
  CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
MODIFY [column] VARCHAR(250)
    CHARACTER SET utf8mb4 COLLATE utf8mb4_bin然后执行迁移
时间: 2024-10-16 16:08:52

ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value:的相关文章

Slave SQL: Error 'Incorrect string value ... Error_code: 1366

背景: 主从环境一样,字符集是utf8. Slave复制报错,平时复制都正常也没有出现过问题,今天突然报错: 150610 17:47:10 [ERROR] Slave SQL: Error 'Incorrect string value: '\xD3\xC3\xB6\xD2\xBB\xBB...' for column 'remark' at row 1' on query. Default database: 'jute'. Query: 'INSERT INTO jute_file_use

ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1

ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1 数据库字符集问题,查看数据库状态: mysql> status; -------------- mysql  Ver 14.14 Distrib 5.6.12, for Win32 (x86) Connection id:          25 Current database:       information_

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "geometry_columns" does not exist

背景 postgresql 与postgis ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "geometry_columns" does not exist 确认是否自己在开发项目下数据库已扩展postgre $sudo -u postgres psql $\l $\c dbname $ SELECT postgis_full_version();

Error Code: 1366 - Incorrect string value: '***' for *** row 1

今天处理一个报障问题,执行mysql更新脚本时报错: Error Code: 1366 - Incorrect string value: '\xB3\xAC\xCA\xD0\xBB\xDD...' for column 'ChangecdtionName' at row 1 反复分析,查找网络上相似错误的解决办法,找不到好的方法. 知道这是编码问题,报的错误:1.查看了mysql数据库的编码为utf-8 2.查看了centos系统的编码为:LANG=zh_CN.UTF-8 这奇怪了,都是utf

mysql 插入中文时出现ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern ame' at row 1

1 环境: MySQL Server 6.0  命令行工具 2 问题 :  插入中文字符数据出现如下错误: ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern ame' at row 1 3 当时环境: mysql> insert into user(id , username , birthday, sex, address) values('2' , ' 李四' , '1980 12

ERROR 1366 (HY000): Incorrect string value: '\xC6\xF4\xD3\xC3' for column 'name' at row 1

ERROR 1366 (HY000): Incorrect string value: '\xC6\xF4\xD3\xC3' for column 'name' at row 1 mysql>status D:\mysql6.0\bin\mysql.exe  Ver 14.15 Distrib 6.0.11-alpha, for Win64 (unknown) Connection id:          1 Current database:       bank Current user:

ERROR 1366 (HY000): Incorrect string value: '\xAD\xE5\x9B\xBD\xE9\x82...' fo的解决方法

本地wamp导入4G数据时,出现了ERROR 1366 (HY000): Incorrect string value: '\xAD\xE5\x9B\xBD\xE9\x82...,如图下 找到的解决的方法如下: my.ini,打开 1.在[client]段落增加:default-character-set=utf8 2.在[mysqld]段落增加:character_set_server=utf8 重启MySQL服务即可. 如果还是不能解决问题,重新打开 Mysql 控制台操作如下: 1. 打开

解决mysql插入中文字符报错的问题ERROR 1366 (HY000): Incorrect string value: ‘\xE5\xB0\x8F\xE6\x98\x8E‘ for column ‘name‘ at row 1

原文:解决mysql插入中文字符报错的问题ERROR 1366 (HY000): Incorrect string value: '\xE5\xB0\x8F\xE6\x98\x8E' for column 'name' at row 1 报错内容: mysql> insert into person values (1,22,'小明');ERROR 1366 (HY000): Incorrect string value: '\xE5\xB0\x8F\xE6\x98\x8E' for colum

nested exception is java.sql.SQLException: Incorrect string value: '\xE7\x99\xBB\xE9\x99\x86...' for column 'image' at row 1

HTTP Status 500 - Hibernate operation: could not insert: [cn.itcast.shop.product.vo.Product]; uncategorized SQLException for SQL [insert into product (pname, market_price, shop_price, image, pdesc, is_hot, pdate, csid) values (?, ?, ?, ?, ?, ?, ?, ?)