MySQL Migrate 8.0.18 -> 5.6.28

Scene

  • 迁移 MySQL 数据库
  • 用 Navicat 转储 SQL 文件
  • 再导入新数据库
  • unkown collation:’utf8mb4_0900_ai_ci’

    Solution

  • 这是因为 数据库版本 不一致 导致的

    1
    2
    3
    4
    5
    6
    7
    8
    -- old db
    mysql> select version();
    +-----------+
    | version() |
    +-----------+
    | 8.0.18 |
    +-----------+
    1 row in set (0.04 sec)
    1
    2
    3
    4
    5
    6
    7
    8
    -- new db
    mysql> select version();
    +--------------------+
    | version() |
    +--------------------+
    | 5.6.28-cdb2016-log |
    +--------------------+
    1 row in set (0.06 sec)
  • 把转储 SQL 文件中的所有的 utf8mb4_0900_ai_ci 替换为 utf8_general_ci

  • 把转储 SQL 文件中的所有的 utf8mb4 替换为 utf8
  • 再次导入即可
< - 僕らは知らない - >