mysql在Mac上编码问题

2017-06-25  本文已影响15人  hament

在官网安装完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;
上一篇 下一篇

猜你喜欢

热点阅读