背景:
在部署完成了mysql5.7.4数据库服务之后创建了mydb数据库,然后创建了如下的表:
CREATE TABLE department(
did int (4) NOT NULL PRIMARY KEY,
dname varchar(20)
);
CREATE TABLE employee (
eid int (4) NOT NULL PRIMARY KEY,
ename varchar (20),
eage int (2),
departmentid int (4) NOT NULL
);
创建表完成之后去插入数据:
-- 向department表插入数据
INSERT INTO mydb.department(did,dname)VALUES(1001,'财务部'); INSERT INTO mydb.department(did,dname)VALUES(1002,'技术部'); INSERT INTO mydb.department(did,dname)VALUES(1003,'行政部'); INSERT INTO mydb.department(did,dname)VALUES(1004,'生活部');
-- 向employee表插入数据
INSERT INTO employee VALUES(1,'张三',19,1003);
INSERT INTO employee VALUES(2,'李四',18,1002);
INSERT INTO employee VALUES(3,'王五',20,1001);
INSERT INTO employee VALUES(4,'赵六',20,1004);
报错现象:
但是在执行插入的时候提示报错:

1366 - Incorrect string value: '\xE8\xB4\xA2\xE5\x8A\xA1...' for column 'dname' at row 1
故障原因:
出现这个问题的原因是mydb数据库的字符集编码、排序类型不是utf-8,所以创建时会报1366

检查mydb数据库的字符集和排序规则,确实不是utf-8的,所以需要将nydb数据库的字符集和排序规则修改为utf-8,就可以了。
切记,将已经创建的表,重新drop,再create一下就可以插入数据了。
MySQL数据库字符集问题与解决
在部署的MySQL5.7.4数据库中,创建mydb数据库和department及employee表后,尝试插入数据时遇到1366错误,原因是数据库字符集非utf-8。解决方案是将数据库和表的字符集更改为utf-8,删除并重新创建表后,数据成功插入。
1686

被折叠的 条评论
为什么被折叠?



