mysql utf8与utf8mb4问题

patner6 2018-06-01 08:06:00
现在做的项目需要兼容emoji表情,网上查了很多资料,使用了多个方法,但最后也不能让我安心~
语言:golang
orm框架: gorm
mysql版本:MariaDB 5.5

问题:
1、多个sql连接是否会有问题?
2、不同连接之间事务会不会出问题?(目前自己测试没发现问题)

经历:
一、有部分建议是将整个库更新为utf8mb4(连接:https://blog.csdn.net/woslx/article/details/49685111)。
但我认为完全没有必要啊,我只需要utf8mb4兼容某几张表和几个字段,

二、我就按照网上修改了server的配置,
(链接:https://blog.csdn.net/yumushui/article/details/49153525)

三、重启sql服务后发现还是木有用。前端拿到的依旧是"???"这种,
我找了代码中连接mysql的代码
sourceName := fmt.Sprintf(
"%s:%s@(%s:%d)/%s?charset=utf8",...
将其修改为了utf8mb4,但其他utf8的地方进行搜索就报错误
"llegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'like"。
因为搜索的表编码模式不一致导致,连接的默认方式被我设置为了utf8mb4,而表是utf8

四、我就将新写了一个sql的连接,针对那个模块使用mb4连接,解决了表情的问题,也修复了不支持的问题。

...全文
826 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2018-06-02
  • 打赏
  • 举报
回复
数据库,链接字符串,数据对象都用同一个字符集。 数据库本来就可以多个连接,不同连接事务会有保护,MySQL默认是rr
crynono 2018-06-01
  • 打赏
  • 举报
回复
字符集的修改影响的仅仅是表中的新数据,不影响原有数据。
patner6 2018-06-01
  • 打赏
  • 举报
回复
小白蒙头乱撞啊~求解救

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧