要让 MySQL 开启 utf8mb4 支持,需要一些额外的设置。

1. 检查 MySQL Server 版本

  • utf8mb4 支持需要 MySQL Server v5.5.3+

2. 设置表的 CHARSET

  • 创建表的时候指定 CHARSET 为 utf8mb4

    CREATE TABLE IF NOT EXISTS table_name (
    ...
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
  • 或者修改已存在的表 CHARSET 为 utf8mb4

    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3. 修改 MySQL 配置文件

  • 修改 my.conf 的内容

    [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

4. 检查是否生效

  • 正常情况下的结果应该如下所示:

    mysql> 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 |
    +--------------------------+--------------------+

5. 指定 MySQL 连接时的 charset

  • 以 mysql-python 为例:

    MySQLdb.connect(
    host=config.DB_HOST,
    port=config.DB_PORT,
    user=config.DB_USR,
    passwd=config.DB_PSW,
    db=config.DB_NAME,
    use_unicode=True,
    charset="utf8mb4")

[1] http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters

[2] https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4

让 MySQL 支持 emoji 存储的更多相关文章

  1. MySQL支持Emoji表情

    让MySQL支持Emoji表情,涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集. utf8mb4和utf8到底有什么区别呢?原来以往的mysql的utf8一个字符最多3字节, ...

  2. mysql 支持emoji

    1.修改my.cnf [client] default-character-set = utf8mb4 [mysqld] collation-server = utf8mb4_unicode_ci c ...

  3. 查看mysql支持的存储引擎

    查看mysql支持的存储引擎 show engines\G;

  4. MySQL 支持 emoji 图标存储

    在MySLQ中 UPDATA 和 INSERT 数据的时候,如果数据上面带有emoji图标,例如:?.?.? 很容易更新或者插入不成功,导致报错. 1 2 Error: ER_TRUNCATED_WR ...

  5. mysql支持emoji表情符存储

    一.教你如何让数据库支持emoji表情符存储 解决方式: 更换字符集utf8-->utf8mb4 问题描述: 前台应用抓取微博信息,每天总有几条数据插入不成功.应用日志显示: java.sql. ...

  6. MySQL支持多种存储引擎

    MySQL的强大之处在于它的插件式存储引擎,我们可以基于表的特点使用不同的存储引擎,从而达到最好的性能. MySQL有多种存储引擎:MyISAM.InnoDB.MERGE.MEMORY(HEAP).B ...

  7. mysql支持的存储引擎

    1.InnoDB 存储引擎 支持事务,其设计目标主要面向联机事务处理(OLTP)的应用.其特点是行锁设计.支持外键,并支持类似 Oracle 的非锁定读,即默认读取操作不会产生锁. 从 MySQL 5 ...

  8. mysql 支持emoji表情

    在mysql插入emoji表情,出现错误: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8A' for column ' ...

  9. 让MySql支持Emoji表情存储

    java后台报错,如下. aused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x84' for column ...

随机推荐

  1. 使用js的indexOf,lastIndexOf,slice三函数轻易得到url的服务器,路径和页名

    js的indexOf,lastIndexOf,slice能帮我们在js字符串处理时少走一些弯路. 程序如下: var url="http://www.cnblogs.com/xiandeda ...

  2. 无需编码开发快速设计互动式UI - uilang

    uilang是一个非常小巧的ui类库,可以帮助不熟悉前端代码的web设计人员快速的开发互动式UI.你只需要使用“语义式”的说明来控制元素的动态效果. 开发中你只需要在<code>标签内部输 ...

  3. leetCode 86.Partition List(分区链表) 解题思路和方法

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...

  4. photoshop cs6 Mac版本

    地址:http://trials2.adobe.com/AdobeProducts/PHSP/13/osx10/Photoshop_13_LS3.dmg 说明:http://www.nowmac.co ...

  5. cocos2d-x eclipse + NDK 自动编译配置

    文章来自:http://www.cocos2dres.com/view.asp?id=90 1. 准备工作: android NDK    r8版本 ADT Bundle 下载地址:http://de ...

  6. vue 1.x 总结

    1.Vuejs组件 vuejs构建组件使用 Vue.component('componentName',{ /*component*/ }): 这里注意一点,组件要先注册再使用,也就是说: Vue.c ...

  7. CentOS 6.3系统安装配置KVM虚拟机

      作业环境 服务器端 操作系统:CentOS 6.3 final x86_64 IP: 133.133.10.50 Hostname:myKVM KVM:qemu-kvm-0.12.1.2-2.29 ...

  8. Android Launcher拖拽事件详解【android4.0--Launcher系列二】

    AndroidICS4.0版本的launcher拖 拽的流程,基本和2.3的相似.就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类.等等.4.0的改变有一些,但是不是特别大.这个月一 直 ...

  9. C# 编写Windows服务在VS中调试的步骤

    1.以管理员身份运行cmd 2.安装windows服务 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(InstallUtil.exe的路径,注意In ...

  10. 黑马程序猿——25,打印流,合并流,对象序列化,管道流,RandomAccessFile

    ------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培 ...