MENU

数据库迁移时的编码问题

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

为了支持 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. 这个编码之后也是可以改的吧?

  2. 我错了 (委屈脸)

    1. @Leonn_Li你那里错了?@(滑稽)

  3. emoji是啥 可以吃的吗

  4. mysqldump -uroot -p 数据库>/root/db_backup.sql
    #(观察)