mysql在Mac上编码问题

在官网安装完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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 41,117评论 0 48
  • 前段时间公司内部博客上凯哥分享了一篇关于mysql字符集编码的文章,之前我对mysql字符集一块基本没有深究过,看...
    __七把刀__阅读 6,496评论 14 18
  • From: 博客园 Johney最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结...
    zheng7阅读 976评论 1 2
  • 就这么着我成了赤羽业的女朋友,连一句好听点的情话他都没当面说给我听。我真觉得自己当年是个怂包。 可不破非说我们初中...
    贰点伍阅读 268评论 0 0
  • 简单说明本次知识要点 1.Cocoapods的安装; 2.安装遇到的问题; 3.安装总结; 4.最新补充; 背景介...
    自在轻梦阅读 1,245评论 1 9