MENU

数据库迁移时的编码问题

• January 18, 2017 • Read: 26756 • 日常

为了支持 Emoji,博客数据库使用了utf8mb4的编码,本来一直相安无事,没想到后来迁移主机的时候被坑的不惨。

原因是导出 SQL的时候,某些低版本的应用(说的就是 PHPMyAdmin)可能在导出的时候会不支持utf8mb4,所以导出的 SQL 文件声明的数据库编码方式是 utf8,再进行导入的时候,数据库自然就按照utf8的编码方式导入,导致 Emoji 表情都变成了?

😂

解决起来非常简单啊:

打开 SQL 文件,搜索:

/*!40101 SET NAMES

然后找到:

/*!40101 SET NAMES utf8 */;

如果以上面 那样,那再导入的时候就是以utf8作为编码了。所以我们要把这里的utf8改成utf8mb4,然后就搞定了。

当然,最终的编码还是根据你的实际情况看,但是仍然建议在导入之前先检查一遍编码方式,以免不必要的呵呵发生。

Last Modified: February 4, 2017
Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

17 Comments
  1. 你好,我可以在您的文章的基础上进行二次修改并发布到我个人的博客上吗?

    1. @Yiveco可以的,注明出处即可。

    2. @Hran十分感谢您能够同意

  2. 不舒服,改完了还是一个小问号。( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃

    1. @metheno那你之前存的时候就没存 utf8mb4 吧

  3. 以前也遇到过一样的问题 折腾了好久@(喷)

  4. Key Key

    😂想问下。这个评论是和这套主题一起的吗?评论的表情除emoji以外那些表情也是4个字节的吗?

  5. utf8mb4是兼容utf8吗,ghost博客安装时是utf8,想搞搞emoji@(滑稽)

    1. @yufan兼容,ghost 应该也可以这么搞
      话说,你就不要再换主题了,Ghost 那个也算是我最喜欢的一个主题了

    2. @Hran不想搞了@(不高兴)没有phpmyadmin,自己改,怕搞炸了
      \#(高兴)不会换主题了,我也蛮喜欢的,大佬常来啊

    3. @yufan大佬常来啊@(滑稽)