【问题标题】:Ignore non compatible character sets忽略不兼容的字符集
【发布时间】:2020-04-20 19:28:01
【问题描述】:

我在尝试从转储文件恢复数据时遇到错误。

# mysql  < /tmp/Dump20200101.sql
ERROR 1273 (HY000) at line 1: Unknown collation: 'utf8mb4_0900_ai_ci'

我可以编辑转储文件并更改字符集。

如果不存在则创建数据库somedb_25122019 /*!40100 默认 字符集 utf8mb4 整理 utf8mb4_0900_ai_ci / /!80016 默认 加密='N' */;

在mysql中处理这个错误的正确方法是什么?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    基于this article,您的目标数据库不支持mysql8.0 归类utf8mb4_0900_ai_ci

    所以在导入时替换它:

    sed -e 's/COLLATE utf8mb4_0900_ai_ci/COLLATE utf8mb4_unicode_520_ci/g' /tmp/Dump20200101.sql | mysql
    

    【讨论】:

    • mysql-dump 命令正确地为字符集添加注释子句。如果mysql在恢复数据时没有遵循提示,那么它首先就违背了在create database语句中添加额外字符的目的。
    • 注意注释 - 不是围绕整个字符集和排序规则的版本 4.0.1。假设您没有恢复到此版本,但是将实际目标版本放入问题中会很有用.你可以为 MySQL 写一个 bug 或补丁,他们会比你不这样做更感激 (bugs.mysql.com)。
    猜你喜欢
    • 2017-11-25
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多