服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|

服务器之家 - 数据库 - Mysql - MySQL如何插入Emoji表情

MySQL如何插入Emoji表情

2021-03-14 18:32神奇的程序员 Mysql

这篇文章主要介绍了MySQL如何插入Emoji表情,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下

前言

今天在设计开源项目的反馈信息表时遇到了emoji表情插入失败的问题,网上找了很多解决方案,答案五花八门,没找到好使的。

经过一番折腾后,终于成功插入了emoji表情,本文就跟大家分享下我的实现过程,欢迎各位感兴趣的开发者阅读本文。

写在前面

我的服务器是mac系统,mysql使用brew安装的,windows/linux它的配置文件位置可能有些不一样,具体根据真实情况而定。

先跟大家看下它的报错信息:

?
1
2
3
chat_system> update chat_system.feedback t set t.comments = '反馈信息测试' where t.id = 1
[2020-12-01 21:36:08] [hy000][1366] incorrect string value: '' for column 'comments' at row 1
[2020-12-01 21:36:08] [hy000][1366] incorrect string value: '' for column 'comments' at row 1

MySQL如何插入Emoji表情

实现思路

因为数据库默认是utf-8编码格式,普通的字符串占位3个字节而表情占位4字节,此时utf-8就不够用了,需要采用utf8mb4字符集就能解决这个问题了。

注意:utf8mb4字符集要求数据库版本高于5.5.3。

那么,我们要做的事情如下所示:

  • 修改mysql配置文件,设置其编码格式
  • 修改数据库字符集编码
  • 修改数据库表字符集编码

实现过程

mysql默认读取配置的顺序为:/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf,如果对应目录下不存在这些配置文件,则需要自己新建一个。

  • 修改数据库配置文件my.cnf,我的文件位置在: /usr/local/etc下,添加下述代码
?
1
2
3
4
5
6
7
8
9
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'set names utf8mb4'
character-set-client-handshake = false
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
  • 修改数据库字符集编码,登录mysql后执行下述sql语句。
?
1
2
# 设置数据库字符集编码,chat_system为数据库名称,根据自己的实际情况而来
alter database chat_system character set utf8mb4 collate utf8mb4_unicode_ci;
  • 修改数据库表的字符集编码,登录mysql后执行下述sql语句。
?
1
2
# 设置数据库表字符集编码,chat_system.feedback_comment_reply为我的数据库下对应的表名称,根据自己的实际情况而来
alter table chat_system.feedback_comment_reply convert to character set utf8mb4 collate utf8mb4_unicode_ci;

完成上述操作后,我们来看看是否修改成功,登录mysql后执行下述sql语句。

?
1
show variables where variable_name like 'character%' or variable_name like 'collation%';

显示下属信息,则表示我们已经修改完成了。

MySQL如何插入Emoji表情

测试用例

我们来往插入一个emoji表情来测试下:

?
1
update chat_system.feedback t set t.comments = '反馈信息测试' where t.id = 1;

如下所示,没有报错,插入成功。

MySQL如何插入Emoji表情

我们用datagrap查看下数据库表中的数据,如下所示,它显示了一个?,应该是软件无法识别。

MySQL如何插入Emoji表情

讲道理,应该是插入成功了,我们用postman请求接口试下,成功显示出来了。

MySQL如何插入Emoji表情

以上就是MySQL如何插入Emoji表情的详细内容,更多关于MySQL 插入Emoji表情的资料请关注服务器之家其它相关文章!

原文链接:https://juejin.cn/post/6901289963875368967

延伸 · 阅读

精彩推荐
  • MysqlWin10下mysql 8.0.15 安装配置方法图文教程

    Win10下mysql 8.0.15 安装配置方法图文教程

    这篇文章主要为大家详细介绍了Win10下mysql 8.0.15 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    qq_384612323162020-09-12
  • MysqlMySQL函数讲解(MySQL函数大全)

    MySQL函数讲解(MySQL函数大全)

    MySQL函数大全和函数讲解,管理MYSQL数据一定会用到 ...

    MYSQL教程网3012020-01-15
  • Mysql创建mysql表分区的方法

    创建mysql表分区的方法

    我来给大家介绍一下mysql表分区创建与使用吧,希望对各位同学会有所帮助。表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的参考手册。 ...

    MYSQL教程网5552020-01-13
  • MysqlMySQL 文本文件的导入导出数据的方法

    MySQL 文本文件的导入导出数据的方法

    但有时为了更快速地插入大批量数据或交换数据,需要从文本中导入数据或导出数据到文本。下面的具体的方法大家可以参考下。多测试。 ...

    mysql教程网3692019-11-04
  • Mysql一次MySQL慢查询导致的故障

    一次MySQL慢查询导致的故障

    这篇文章主要介绍了如何对MySQL慢查询导致的故障进行处理,慢查询是我们在mysql中经常需要使用到的一个很方便的功能,慢查询对于跟踪有问题的查询很有...

    Robin Wen1752020-05-17
  • MysqlMySQL设置global变量和session变量的两种方法详解

    MySQL设置global变量和session变量的两种方法详解

    这篇文章主要介绍了MySQL设置global变量和session变量的两种方法,每种方法给大家介绍的非常详细 ,需要的朋友可以参考下...

    MrBug7082019-06-21
  • MysqlMySQL 在触发器里中断记录的插入或更新?

    MySQL 在触发器里中断记录的插入或更新?

    MySQL 不象其它有些数据库可以在触发器中抛出异常来中断当然触发器的执行以阻止相应的SQL语句的执行。在MySQL的目录版本中还无法直接抛出异常。这样我...

    mysql教程网2352019-10-31
  • MysqlMySQL中的事件调度基础学习教程

    MySQL中的事件调度基础学习教程

    这篇文章主要介绍了MySQL中的事件调度基础学习教程,本文介绍了对Event Scheduler的一些基本操作方法,需要的朋友可以参考下 ...

    MYSQL教程网3652020-05-22