mysql数据库支持emoji表情特殊字符

文章目录

    • 一、背景问题
    • 二、window下设置utf8mb4
        • 1.修改mysql配置文件
        • 2.重启mysql服务
        • 3.设置库、表字符集
    • 三、linux下设置utf8mb4
        • 1.修改配置
        • 2.重启服务
        • 3.设置库、表字符集

一、背景问题

  • 问题:mysql数据库设置为utf8mb4后仍然无法插入表情符号
  • 原因:mysql配置文件中没有设置utf8mb4并重启服务

在排查的过程中,先在本地尝试,后在linux上尝试,接下来记录一下完整的设置编码流程

二、window下设置utf8mb4

1.修改mysql配置文件

  • 进入dos,进入Mysql, 输入 select @@basedir;
    mysql数据库支持emoji表情特殊字符_第1张图片
    注:如果mysql命令无法使用,win10左下角可以直接搜索mysqlClient
  • 修改my.ini文件

    mysql数据库支持emoji表情特殊字符_第2张图片

  • 修改如下配置

    在这里插入图片描述
    mysql数据库支持emoji表情特殊字符_第3张图片

2.重启mysql服务

  • 进入任务管理器,在服务中找到mysql,右键重启

    mysql数据库支持emoji表情特殊字符_第4张图片

3.设置库、表字符集

  • 设置库字符集
    alter database mydatabase default character set uft8mb4;

  • 设置表字符集
    alter table mytable convert to character set utf8mb4;

三、linux下设置utf8mb4

1.修改配置

  • 文件位置 /etc/my.cnf
  • vi my.cnf增加如下配置
[client] 
default-character-set = utf8mb4
[mysql]  
default-character-set = utf8mb4
[mysqld]  vi
character-set-server = utf8mb4  
collation-server = utf8mb4_unicode_ci

2.重启服务

  • 重启命令
    systemctl restart mysqld.service

  • mariadb的重启
    systemctl restart mariadb

3.设置库、表字符集

  • 设置库字符集
    alter database mydatabase default character set uft8mb4;

  • 设置表字符集
    alter table mytable convert to character set utf8mb4;

你可能感兴趣的:(mysql)