背景
当执行数据库脚本时出现如下问题,无法插入数据。
[HY000][1366] Incorrect string value: '\xE8\x8B\xA5\xE4\xBE\x9D...' for column 'dept_name' at row 1
问题分析解决
新建数据库时未考虑字符集,不同环境下新建数据库默认字符集可能是不一样的,这时出现问题需要查看和修改字符集
查看数据库字符集
-- 查看数据库信息,包含字符集
select * from information_schema.SCHEMATA s where SCHEMA_NAME = '数据库名称';
修改数据库字符集
-- 修改数据库字符集为utf8
alter database ryvue character set utf8;
查看数据库的表字符集
-- 查看表信息,包含字符集
show table status from 数据库名称;
修改数据库的表字符集
-- 修改表的字符集
alter table 表名称 convert to character set utf8;
查看数据库表的列字符集
-- 查看表中所有列的字符集
show full columns from 表名称;
补充说明
设置字符集一般有两种方法,一种是在创建表的时候设置字符集,另一种是表建成之后修改字符集。可自行百度获取答案