美文网首页
mysql修改编码为utf8mb4

mysql修改编码为utf8mb4

作者: 极客收藏夹 | 来源:发表于2018-08-25 20:03 被阅读24次

    UTF-8

    Unicode 是「字符集」,是字符与特定ID的映射
    UTF-8、UTF-16 是「编码规则」,是对字符的传输规则

    UTF-8 是以 8 位为一个编码单位的可变长编码。会将一个码位编码为 1 到 4 个字节。同理,UTF-16是以16位为单位

    Mysql的utf8mb4

    MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是「most bytes 4」的意思,专门用来兼容四字节的unicode。
    utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。 好好地为什么要多个utf8mb4呢?以为mysql支持的 utf8 编码最大字符长度为 3 字节(理解为Mysql之前的utf8是有坑的),如果遇到 4 字节的宽字符就会插入异常了。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等。

    修改编码为utf8mb4

    登录mysql,输入密码。

    sudo mysql -u root -p
    

    查看当前mysql的字符集

    mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
    

    显示

    image.png

    再开一个终端tab,查看配置文件路径

    ~$ mysql --help|grep my.cnf
    # 输出
    /etc/my.cnf  /etc/mysql/my.cnf   ~/.my.cnf 
    

    编辑 已经存在配置文件,笔者的是 /etc/mysql/my.cnf ,

    插入

    
    [client]
    default-character-set=utf8mb4
     
    [mysqld]
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    skip-character-set-client-handshake = true
     
    [mysql]
    default-character-set = utf8mb4
    

    保存好,重启 mysql

     service mysql restart
    

    再次登录,查看字符集(见上文)。得到输出

    image.png

    相关文章

      网友评论

          本文标题:mysql修改编码为utf8mb4

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