美文网首页
mysql导入报错 [Err] 1273 - Unknown c

mysql导入报错 [Err] 1273 - Unknown c

作者: 麦芽maiya | 来源:发表于2020-09-09 10:32 被阅读0次

    问题出现在:

    从本机mysql导出备份到服务器上

    mysql导入报错:

    [Err] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'

    搞死了,一整个下午 baidu上并没有什么解决方式,自己综合n+1片文章摸出来

    查了100遍数据库字符集,对比两边数据库是一摸一样的(起初不一样也通过navicat,workbench改成一致的了,通过以下命令可以查出字符集即改字符集:

    showvariableslike'character%';

    setcharacter_set_database=utf8;

    setcharacter_set_server=utf8;

    然而还是不停的报那个错,我始终找不到utf8mb4_0900_ai_ci这个东东在哪里。

    后来发现,每一张表都有自己的排序规则和字符集(export table 后面也会带上这个):

    通过此语句能直接查到哪些表用哪些字符集:

    select TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION from information_schema.tables where 【table_collation = 'utf8mb4_0900_ai_ci'】

    and table_schema = 'db.schema';

    通过此语句终于发现确实存在诡异的utf8mb4_0900_ai_ci排序的表

    应该是因为本机mysql版本是8,服务器上版本较低导致的不兼容

    selectTABLE_SCHEMA,TABLE_NAME,TABLE_COLLATIONfrominformation_schema.tableswheretable_collation ='utf8mb4_0900_ai_ci'

    andtable_schema ='schema';

    解决方式:

    1 先查错误的字符集存在哪些表里:

    select TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION from information_schema.tables where table_collation = 'utf8mb4_0900_ai_ci'

    and table_schema = 'jh';

    2 发现无法修改,使用mysql命令行+root权限还是失败 update information_schema.tables

    set table_collation = 'utf8_general_ci' where table_collation = 'utf8mb4_0900_ai_ci' and table_schema = 'jh';

    3 傻傻的导出.sql文件,然后批量把

    字符:utf8mb4_0900_ai_ci 替换为:utf8_general_ci 

    相关文章

      网友评论

          本文标题:mysql导入报错 [Err] 1273 - Unknown c

          本文链接:https://www.haomeiwen.com/subject/yzfeektx.html