在官网安装完mysql 后, 用go语言操作数据库后发现无法插入中文,折腾了一番后,可以插入,但显示乱码(??),再折腾一番后,终于解决问题,方法如下;
先进入mysql操作台, 用 status命令查看下
mysql> status;
检查哪个字符集不符合编码要求就修改哪个
例如:
MYSQL>set character_set_client = "utf8" ;
MYSQL>set character_set_connection = "utf8" ;
MYSQL>set character_set_results= "utf8" ;
MYSQL>set character_set_server= "utf8" ;
重新启动mysql,再查看status;
我在使用navicat作为数据库可视化操作时,发现连接方式要选"自动",表的内容才能显示正确
如果上述方法无效, 可以新建一个 my.cnf文件,编辑内容如下:
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
注意: collation-server = utf8_general_ci 也可以设置为 utf8_bin(对字段,查询内容大小写敏感)
路径保存在 /etc/mysql/my.cnf
重启mysql
为了严谨,在建立数据库和字段时,最好指定编码
如:
create database 数据库名 default character set utf8 collate utf8_general_ci;
DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (
`uid` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`departname` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`created` date DEFAULT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
网友评论