美文网首页
mysql在Mac上编码问题

mysql在Mac上编码问题

作者: hament | 来源:发表于2017-06-25 20:05 被阅读15次

    在官网安装完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;
    

    相关文章

      网友评论

          本文标题:mysql在Mac上编码问题

          本文链接:https://www.haomeiwen.com/subject/grprcxtx.html