问题描述:
(1)在ubuntu终端输入命令mysql -uroot -p,然后输入密码,进入mysql客户端,可是发现无论如何输入不了中文。然后问度娘,说是编码格式的问题。然后输入如下命令:
SHOW VARIABLES LIKE "%char%";
发现自己的编码格式不对,然后输入以下命令,更改编码格式
set character_set_database=utf8;
此时可以输入中文了,但是在插入数据库时又报如下错误:Incorrect string value: ‘\xE7\xA8\x8B\xE5\xBA\x8F…’ for column ‘course’ at row 1
然后问查询了表结构,发现表数据库引擎的编码方式不对,如下所示:
show create table user;
然后又修改数据库引擎的编码格式如下所示:
ALTER TABLE user CHARSET=utf8;
以为这下可以了,但是还是出现上述错误,又百度,查询了一下表结构,如下:
发现虽然数据库引擎的编码格式虽然改过来了,但是表中的字段属性仍然不是utf8,所以又继续修改字段编码,用如下命令修改字段编码。
ALTER TABLE `user` CHANGE `email` `email` VARCHAR(36) CHARACTER SET utf8 NOT NULL;
其他字段同理,至此问题解决。
其实还有别的方法,就是在最初创建数据库时,将数据库引擎编码方式改为utf8,不使用默认的数据库引擎。