目录

1. 问题 - MySQL插入表情包符号

2、解决方法

2.1针对字段修改编码格式(推荐使用)

2. 2、整个数据库修改编码格式

3. MySQL字符集

3.1 数据库字符集

3.1.1查看当前数据库字符集配置:

3.1.2 修改数据库编码格式

3.2 表的编码

3.2.1 参看表的编码格式

3.2.2修改表的编码格式

3.3 字段的编码

3.3.1 看字段编码格式

3.3.2 修改字段的编码格式

4. 可能的问题

4.1  ALTER TABLE `tbl` DEFAULT CHARACTER SET utf8 ; 字段编码格式未生效

4.2 对表DDL时,会锁表 -- (pt-online-schema-change)

1. 问题 - MySQL插入表情包符号

刚上mysql,经常发生前段传过来的内容入库发生异常,数据库报:

java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x8C\xB8’ for column ‘mechant_name’ at row 1

发现,数据库建表时候,用的是utf8字符集,传进来了表情包,表情包是4个字节的;

通常情况,Mysql数据编码格式为“utf-8”,对于汉字来说足够;Mysql中utf8占3个字节,但是,3个字节对于表情符号是不够的,需4个字节;此时使用utf8,会出现‘\xF0\x9F\x8D\x83\xF0\x9F’的问题。

2、解决方法

utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。

2.1针对字段修改编码格式(推荐使用)

数据库表对应字段上修改编码格式为utf8mb4,命令示例如下:

ALTER TABLE insure_user CHANGE nickname nickname VARCHAR(64) CHARACTER SET utf8mb4 ;

2. 2、整个数据库修改编码格式

修改数据库表的编码格式,修改为utf8mb4;修改Mysql配置文件my.cnf(windows下为my.ini),然后重启数据库

3. MySQL字符集

3.1 数据库字符集

3.1.1查看当前数据库字符集配置:

show variables like 'character%'

3.1.2 修改数据库编码格式

alter database databasename character set utf8

或者,直接修改mysql的配置文件 my.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

3.2 表的编码

3.2.1 参看表的编码格式

show create table table_name

可以输出完整的建表语句,看其中的 “DEFAULT CHARACTER”项;

3.2.2修改表的编码格式

alter table tablename character set utf8

3.3 字段的编码

3.3.1 看字段编码格式

show full columns from tableName

看 Collation列;

3.3.2 修改字段的编码格式

alter table tablename modify fieldname varchar(50) character set utf8

4. 可能的问题

4.1  ALTER TABLE `tbl` DEFAULT CHARACTER SET utf8 ; 字段编码格式未生效

虽然使用 ALTER TABLE `tbl` default character set utf8, 将表的编码格式修改成了utf8; 但是 字段的编码格式并没有修改过来;

修改字段的编码格式:

ALTER TABLE `tablename` CHANGE `字段名1` `字段名2` VARCHAR(36) CHARACTER SET utf8 NOT NULL;

将现有数据,转换成新的编码格式:

alter table `tablename` convert to character set utf8;

4.2 对表DDL时,会锁表 -- (pt-online-schema-change)

MySQL进行DDL操作时(修改字段类型、长度、编码等等,都属于DDL操作),MySQL会锁表;

如果数据量小的表,没有什么影响;如果数据量大(1w条记录以上?),就会对当前表的操作产生明显的影响;尤其是千万级,上亿的表,影响更大;

看介绍,使用 pt-online-schema-change 在线DDL工具,可以减少影响(只是减少影响,而不是完全避免影响);

pt-oneline-schema-change 自己没使用过,搞个链接过来吧,写着挺清晰的

https://www.cnblogs.com/allenhu320/p/11358652.html

mysql 字符集 表情_MySQL字符集(表情包)相关推荐

  1. ci框架 mysql 超时时间_mysql 字符集和校验规则( CHARSET amp; COLLATE)

    我们首先看下常见建表语句: mallAllGoodsCREATE TABLE `qywl`.`mallAllGoods` ( `id` varchar(64) NOT NULL COMMENT '主键 ...

  2. 检测mysql字符正确_mysql字符集的测试

    nls_lang用于设置客户端的字符集.影响sqlplus界面的语言. regedit: hkey_local_machinesoftwareoraclehome0 nls_lang键值 1.取值为' ...

  3. sqlyog更改字符集编码_MySQL 字符集设置

    Linux(Ubuntu)环境描述具体操作,Unux与其基本一致,Windows路径配置上少有不同. 我们将讨论以下几个问题: 字符集问题表征 修正配置,设置默认字符集编码 在使用过程中强制设置字符集 ...

  4. mysql表情符号变为_mysql Emoji表情字符集转换

    Java代码 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 ...

  5. mysql字符集解释_MySQL字符集详解

    一.MySQL字符集编码简单介绍 在使用MySQL时要注意6个需要编码的地方:系统的编码.客户端.服务端.库.表.列.字符集编码不仅影响数据存储,还影响client程序和数据库之间的交互.在mysql ...

  6. mysql 字符集 性能_MySQL字符集不一致导致性能下降25%,你敢信?

    故事是这样的: 我在对MySQL进行性能测试时,发现CPU使用率接近100%,其中80%us, 16%sys,3%wa,iostat发现磁盘iops2000以下,avgqu-sz不超过3,%util最 ...

  7. mysql中设置字符集语句_MYSQL字符集设置的方法详解(终端的字符集)

    前言 每次利用终端 创建数据库或者创建表的时候,字符集都是latin1,或者进行插入值的时候,显示的是乱码(不指定字符集的时候)如下: 查看当前数据库的字符集 character_set_client ...

  8. mysql 连接 字符集设置_Mysql 字符集的设置和修改

    Show variables like 'character%';  //显示目前mysql默认 字符集 显示数据连接字符集 修改字符集 D:\mysql>Net stop mysql   // ...

  9. mysql字符集设置_mysql字符集设置

    配置文件路径: /full/path/mysql/bin/my.cnf (默认为/etc/my.cnf ) [client] default-character-set=utf8 [mysql] de ...

最新文章

  1. Pytorch转ONNX采坑记:Converting a tensor to a Python boolean might cause the trace to be incorrect. We...
  2. elementUI+vue-cli el-table=》excel
  3. python生成api文档_Django 自动生成api接口文档教程
  4. Python搭建web服务器
  5. srpm包的编译方式
  6. seo查询系统php源码,2020版SEO计费系统的源码
  7. ExecutorService的shutDown和shutDownNow方法的区别
  8. 利用Python进行数据分析——重要的Python库介绍
  9. Bootstrap入门!
  10. 爱创课堂每日一题第四天8/28日XML和JSON的区别?
  11. window下的批处理命令学习
  12. Download Software Top 10
  13. 商品进销存系统c语言课设报告,商品进销存管理系统_C语言-课程设计(附报告论文).doc...
  14. android 简单的闪屏页,闪屏页的实现简单原理
  15. 2020年中国互联网公司薪酬排行榜发布了!这些你都知道吗?
  16. SEER见证人操作指南
  17. 让App推广运营更高效,必须要有这几大功能!
  18. android SurfaceView 拍照时显示参照矩形框
  19. IE浏览器——莫名打不开
  20. 展锐荣获2021年中国5G实力榜之十大领航企业奖

热门文章

  1. 如何写PRD文档[最全版]
  2. 手Q游戏中心上线 完美释放娱乐基因
  3. Nexus 6p 刷入TWRP和OPENGAPPS
  4. Git 使用 stash暂存代码
  5. mac屏保怎么不显示,mac屏保怎么关闭
  6. Linux下Socket通信中非阻塞connect、select、recv 和 recvfrom、send和sendto大致讲解,附带非租塞connect代码、MSG_NOSIGNAL
  7. sasl java_java SASL_SSL 帐号密码 方式访问 kafka
  8. VUE设置浏览器标题及图标
  9. 泰坦尼克号python数据分析统计服_数据分析可视化——泰坦尼克号幸存者分析(上)...
  10. 增量型编码器与绝对值编码器