前提
utf8mb4 的最低 Mysql 版本支持版本为 5.5.3+,若不是,请升级到较新版本。
如果你用的是 java 服务器,升级或确保你的 mysql connector 版本高于 5.1.13,否则仍然无法使用 utf8mb4。
准备:查看当前版本及字符集
查看当前版本,Linux 命令:
# mysql -V
登录 Mysql 进入命令行模式:
# mysql -uroot -p你的密码
查看当前 Mysql 字符集设置:
msql> SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
步骤一:改 Mysql 配置文件 my.cnf
Windows 下配置文件是安装目录下的 my.ini。
Linux 下 Mysql 配置文件一般在:/etc/my.cnf。
Linux 下 Mysql 配置文件一般在:/etc/mysql/mysql.cnf。
字符配置改为:
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
步骤二:改已有的 database、table 和 column 字符集
msql> ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
msql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
msql> ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
其中的 database_name、table_name、column_name 要替换成你对应的数据库名、表名、列名。VARCHAR 的长度值也是。
步骤三:重启 Mysql 并检查更改后的字符集设置
Linux 下重启命令:
# service mysql restart
再次登陆 Mysql 并查看字符集设置:
msql> SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
此时结果应该如下:
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+--------------------------+--------------------+
rows in set (0.00 sec)
步骤四:关于 JDBC URL
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true
jdbc.username=root
jdbc.password=password
autoReconnect 表示:当数据库连接异常中断时,是否自动重新连接?默认是 false。
相关推荐
Java开发,DB为Mysql,版本不详,编码用的是UTF-8,存入Emoji表情时报错如下: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x93' for column 'strValueContent' at row 1 解决方案:
主要介绍了Java emoji持久化mysql过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
emoji表情符号存放数据库需要数据库支持4个字节的数据格式,而mysql默认的utf8只能存储3个字节,所以需要mysql版本5.6及以上,并设置数据库为utf8mb4字符集
主要介绍了mysql/Java服务端对emoji的支持与问题解决方法,结合实例形式分析了mysql/Java服务端对emoji字符集存储及支持问题解决方法,需要的朋友可以参考下
最近开发的iOS项目因为需要用户文本的存储,自然就遇到了emoji等表情符号如何被mysql DB支持的问题。下面这篇文章主要介绍了关于让Java后台MySQL数据库能够支持emoji表情的方法,需要的朋友可以参考下。
Caused by: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x94\xA5’ for column Emoji表情存储到Mysql中时报错。 ios的表情(emoji表情),这种表情虽然是utf8编码,但是一个字符需要占用4个字节,而...
用户昵称中存在emoji表情,调用jdbc往mysql数据库插入的时候抛出异常 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\x9B' 失败原因 mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4...
本文实例分析了mysql存储emoji表情报错的处理方法。分享给大家供大家参考,具体如下: utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。...
移动端的表情或者一些emoji是4字节的,但是utf-8是3字节的,这篇文章主要介绍了设置mysql5.7编码集为utf8mb4的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文主要介绍了关于MySQL存储表情报错:java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\xA9\x0D\x0A…’的相关解决方法,分享出供大家参考学习,下面话不多说了,来一起看看详细的介绍: ...
主要给大家介绍了关于MySQL存储表情时报错:java.sql.SQLException: Incorrect string value: 'xF0x9Fx92xA9x0Dx0A...'的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
如使用MySQL,字符集选择为utf8或者utf8mb4(支持更多特殊字符如表情字符emoji,推荐)。 执行数据库脚本。数据库脚本在database目录下。 在eclipse中导入maven项目。点击eclipse菜单File - Import,选择Maven - ...
├─forgePet【Java后端与网页前端】 ├─forgePetWX 【微信小程序】 ├─images 【头像图片】 ├─notice 【网站公告文本】 ├─ship-ui 【宠物医院-重置版前端】 ├─shipPet 【宠物医院-重置版后端】 ├─我的...
* 字符集为`utf8 -- UTF-8 Unicode`(为了节省空间,我不打算为了emoji而使用utf8mb4) * 排序规则为`utf8_general_ci`(意为:不区分大小写,这样比较快) * 接着在`pet_ship`数据库下,运行本项目中`数据库备份`...
Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。 Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8C\xB7' for column 'nickname' at row 1 解决方案 ...
他还是一位资深的Java软件开发工程师和Android/iOS移动应用开发工程师,活跃于CocoaChina、开源中国、CSDN等社区,CSDN博客专家,在CSDN博客撰写了系列微信公众平台二次开发的教程,深受欢迎并被广泛传播,也因此...
可以延长房间时间聊天内容过滤 ->服务端安装教程导入anonymous_chat.sql文件到mysql数据库修改Application/chat/config.php 文件注意:服务端可以放在服务器的任何位置,只要运行成功就可使用。同时支持Windows...
FlyCms 是一个类似知乎以问答为基础的完全开源的JAVA语言开发的社交网络建站程序,基于 Spring Boot+Bootstrap3+MyBatis+MYSQL+Solr+Ehcache 应用架构,专注于社区内容的整理、归类和检索,它集合了问答,digg,wiki...
数据库:MySQL 5.7.2x 编码utf8mb4(为了保存emoji表情) 项目主体:Spring Boot 2.2.0 + JDK 1.8 持久层框架:JPA(spring-boot-starter-data-jpa) + MyBatis(mybatis-spring-boot-starter 2.1.0) 模板引擎:...