阿里云 mysql utf8mb4_阿里云 Rails 项目调整 RDS MySQL 编码为 utf8mb4 的详细步骤

本文详细记录了在阿里云RDS MySQL 5.5.18环境下,将Rails 4.1.2项目从utf8编码迁移到utf8mb4的过程,以支持4字节的Emoji表情。迁移步骤包括创建新数据库、修改database.yml配置、处理JSON编码、解决部署报错、升级MySQL客户端、备份还原数据、调整表编码和处理索引限制。通过这些步骤,项目成功支持了Emoji且运行稳定。
摘要由CSDN通过智能技术生成

最近,将一个部署在阿里云上的 Rails 项目,连接的 MySQL 数据库的编码,由 utf8 调整为 utf8mb4。

实施过程不是非常顺利,目前,已经部署完成,观察了一段时间,比较稳定。

写了本篇总结,希望可以帮到有需要的朋友。

环境说明

服务器系统 Centos,版本为 6.5;

数据库使用的是阿里云 RDS MySQL,版本为 5.5.18;

Rails 版本为 4.1.2;

mysql2 Gem, 版本为 0.3.16。

为什么要使用 utf8mb4 编码

根本的原因在于,采用 utf8 编码的 MySQL 无法保存占位是 4 个字节的 Emoji 表情。

为了使后端的项目,全面支持客户端输入的 Emoji 表情,升级编码为 utf8mb4 是最佳解决方案。

之前一篇博文有讲到,不调整 MySQL 编码,使用 rumoji 替换 Emoji 表情为字母编号。

博客原文链接:Ruby on Rails Use MySQL DB Support iPhone emoji

http://manageyp.github.com/ruby-on-rails/2014/12/10/ruby-on-rails-use-mysql-db-support-iphone-emoji.html

但是,这样处理至少有两个问题:

Emoji 表情会持续的更新,rumoji 库如果没有及时更新,输入新的表情,则会报错。

使用 rumoji 对用户输入的字符,做正则匹配解析,增

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值