mysql数据迁移报错问题

news2025/1/15 16:35:19

mysql8.0.17备份数据库到mysql5.7.26的There was error(s) while executing the queries问题解决(数据库高版本向低版本数据迁移解决)

问题背景

要将本地的mysql数据库导入到linux中的mysql中,其中,本地mysql数据库的版本是8.0.17,linux中的
mysql版本为5.7.26。但是在将mysql8.0.17导出的sql文件导入到mysql5.7.26时报了如图的错误
在这里插入图片描述

问题分析(不想看分析可以直接跳到问题解决)

点击“打开错误文件”,滑动到错误文件的最下面
红箭头这个地方就是错误信息,报错翻译为:错误代码:1273 -未知排序:‘utf8mb4_0900_ai_ci’,发生错误的地方就是蓝箭头指向的地方。
在这里插入图片描述
使用NotePad++软件打开mysql8.0.17的sql文件
在这里插入图片描述
从mysql8.0.17的sql文件中可以看出,创建数据库travel时mysql使用的编码为utf8mb4,对应的默认排序规则为utf8mb4_0900_ai_ci,并且创建表时编码和默认排序规则也是如此。

结合错误信息 : " 错误代码:1273 -未知排序:‘utf8mb4_0900_ai_ci’ " 来看,可以初步判断错误原因是mysql5.7.26中并没有mysql8.0.17中的排序规则utf8mb4_0900_ai_ci

为了验证猜想,使用 SHOW COLLATION; 命令查看mysql8.0.17mysql5.7.26它们支持的排序规则

1、mysql5.7.26支持的规则

在这里插入图片描述
mysql5.7.26支持的规则可以看出规则中并没有utf8mb4_0900_ai_ci,并且当编码为utf8mb4mysql5.7.26对应的默认排序规则为utf8mb4_general_ci

2、mysql8.0.17支持的规则

在这里插入图片描述
mysql8.0.17支持的规则中有utf8mb4_0900_ai_ci,并且当编码为utf8mb4时对应默认规则也是utf8mb4_0900_ai_ci

发生错误的主要原因就是因为mysql5.7.26中并没有mysql8.0.17中的排序规则utf8mb4_0900_ai_ci,因此在导入时发生了报错。因此,解决问题的思路也清晰明了了,只需要将mysql8.0.17的sql文件中的所有 utf8mb4_0900_ai_ci 规则替换为 utf8mb4_general_ci 规则,再将sql文件导入到mysql5.7.26中就可以了

问题解决

(此解决方法只针对5.5.3以上的版本,低于5.5.3版本的解决方法请往下看)
从分析中可以得知发生错误的主要原因就是因为mysql5.7.26中并没有mysql8.0.17中的排序规则utf8mb4_0900_ai_ci,解决方法为:将mysql8.0.17的sql文件中的所有 utf8mb4_0900_ai_ci 规则替换为 utf8mb4_general_ci 规则。

使用NotePad++软件可以轻松做到

1、使用NotePad++软件打开我们要导入的sql文件,进入后按 ctrl+f 打开此界面

在这里插入图片描述

2、点击替换,输入我们要替换的utf8mb4_0900_ai_ci 全部替换为 utf8mb4_general_ci

在这里插入图片描述

3、成功修改所有规则

在这里插入图片描述

4、保存并退出,使用SQLyog导入sql文件

在这里插入图片描述
右键travel数据库,选择导入中的执行sql脚本,导入sql文件,成功导入。

低于mysql5.5.3的版本的解决方法
MySQL在5.5.3之后增加了这个utf8mb4的编码,也就意味着低于5.5.3版本的mysql是不能使用utf8mb4编码的,只能使用utf8编码。

因此解决方法为:将mysql8.0.17的sql文件中的所有 utf8mb4 替换为 utf8 ,utf8mb4_0900_ai_ci 替换为 utf8_general_ci 。

问题总结

当将数据库从高版本向低版本迁移时,要考虑的主要是:要导入的数据库在低版本中是否存在对应的编码以及规则

mysql的每一个版本都有它自己的默认编码以及默认的排序规则。编码以及规则都可以更改,当不指定编码或者规则时,就会使用默认的编码与规则。

对于低于mysql5.5.3的版本:
编码:utf8 -----------> 对应的默认排序规则 utf8_general_ci

对于高于mysql5.5.3的版本低于mysql8.0版本:
编码 utf8 ------------>对应的默认排序规则 utf8_general_ci
编码 utf8mb4 ------------>对应的默认排序规则 utf8mb4_general_ci
编码有两种选择,对应的规则有多种选择

对于高于mysql8版本:
编码 utf8 ------------>对应的默认排序规则 utf8_general_ci
编码 utf8mb4 ------------>对应的默认排序规则 utf8mb4_0900_ai_ci
编码有两种选择,对应的规则有多种选择

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/162564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字硬件建模SystemVerilog-时序逻辑建模(1)RTL时序逻辑的综合要求

数字门级电路可分为两大类:组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点,在后面会作为单独的主题处理。组合逻辑描述了门级电路,其中逻辑块的输出直接反映到该块的输入值的组合,例如,双输入AND门的输出…

N5247A网络分析仪

18320918653 N5247A Agilent N5247A 网络分析仪主要特性与技术指标 10 MHz 至 67 GHz2 端口或 4 端口,具有两个内置信号源可提供 4 端口 110 GHz 单次扫描解决方案110 dB 系统动态范围,32001 个点,32 个通道,5 MHz 中频带宽高输…

MySQL中深入浅出索引

文章目录前言一、索引的常见模型二、InnoDB的索引模型三、索引的维护四、索引的优化覆盖索引联合索引最左前缀原则索引下推前言 我们在看书的时候,打算回看某一个桥段的内容时。这是你肯定会是先翻看书的目录,从目录确定这段内容的位置,然后…

爬虫利用多线程快速爬取数据

一般单线程爬数据太慢了话,就采用多线程。 一般要根据两种情形来选择 自定义线程线程池 往往最关键的地方在,多个线程并发执行后,是否需要线性的返回结果。也就是先调用的线程,返回的结果要在前面。 或者说,某个对…

mysql简单数据查询——数采数据电量与耗料的日统计

目录 前言 步骤1:date_format函数 步骤2:concat函数 步骤3、4:查询中使用变量 完整代码 前言 在数采数据已写入mysql数据库中后,进行数据处理,统计电量与耗料数据 由于数据库版本较低,无法使用较新的…

华为策略路由实验配置

配置接口相关的IP地址,并配置IGP路由协议使得全网互通 AR1配置接口策略路由 对经过本地转发的路由生效,对本地始发的路由不生效 配置nqa检测下一跳状态 nqa test-instance PC1 icmptrace nqa的管理者为PC1,NQA的测试例名为icmptrace test-…

全国青少年软件编程(Scratch)等级考试二级考试真题2022年12月——持续更新.....

1.一个骰子,从3个不同角度看过去的点数如图所示,请问5的对面是什么点数?( ) A.1 B.3 C.4 D.6 正确答案:A 答案解析: 根据图三,用右手定则,大拇指朝上指向6所对的方向,其余四指握起来表示旋转方向,可以看到先5后2,然后把这个姿势对应到图1中,就知道1的对面是5…

C语言进阶(8)——动态内存空间管理

前言 文章目录前言1.为什么存在动态内存分配2.动态内存函数的介绍2.1 malloc函数2.2 free函数2.3 calloc2.4realloc3 常见的动态内存错误4.经典笔试题题目 1:题目 2:题目 3:题目 4:5.C/C程序的内存开辟6.柔性数组6.1 定义6.2 柔性…

1.5、中断和异常

整体框架 1、中断的概念和作用 当中断发生时,CPU 立即进入核心态\color{red}核心态核心态 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理 对于不同的中断信号,会进行不同的处理 发生了中断&#xff0c…

记录--“非主流” 的纯前端性能优化

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 性能优化一直是前端研究的主要课题之一,因为不仅直接影响用户体验,对于商业性公司,网页性能的优劣更关乎流量变现效率的高低。例如 DoubleClick by Google 发现&…

MD5加密

MD5加密 md5加密 明文 加密变成 128位二进制 --> 32位16进制字符串的密文 MD5特征: 明文一样, 得到密文一样密文一样, 推出明文一样明文不一样, 得到密文不一样 缺点: 现在网上有很多暴力破解的网址,直接使用md5加密还是不太安全 为了提高安全性&am…

Linux常用命令——vmstat命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) vmstat 显示虚拟内存状态 补充说明 vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。 语法 vmst…

Java高并发编程实战,异步注解@Async自定义线程池

一、Async注解 Async的作用就是异步处理任务。 在方法上添加Async,表示此方法是异步方法; 在类上添加Async,表示类中的所有方法都是异步方法; 使用此注解的类,必须是Spring管理的类; 需要在启动类或配置类…

ELK日志(1)

Elasticsearch开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。RESTFUL特点包括&#xf…

MES系统之工控

MES系统之工控 要控制MES系统首先要对他有个了解。MES系统最早由1990年,由美国先进制造研究中心AMR提出的,当时中文意思叫制造执行系统概念。直到1997年,MESA(制造执行系统协会)提出了MES功能组件和继承模型,到20世纪90年代初期&a…

动态内存管”家“

🐋动态内存管理🦖动态内存分配存在的意义🦖动态内存函数的介绍🐤malloc和free🐤calloc🐤realloc🦖常见动态内存错误🐤对空指针的解引用操作🐤对动态开辟空间的越界访问&a…

springMVC的响应

SpringMVC接收到请求和数据后,进行一些了的处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户。 对于响应,主要就包含两部分内容&…

关于 sensor hdr 模式下不出图/出图异常的排查方法

1、问题背景:有项目调试过 ov02k10(1920*1080)和 sc301IoT(2048*1536)两款 sensor, 都有出现 hdr 模式下出图异常或者不出图的问题,总结下排查过程及注意事项;2、问题现象:a、ov02k1…

Odoo 16 企业版手册 - 库存管理之寄售

寄售 使用“「设置」”菜单下提供的「寄售」选项,可以对库存中储存的产品设置所有者。产品将由零售商销售,但产品的实际所有权将由供应商持有,直到产品出售给客户。通过这种方法,您可以轻松地将未售出的产品退还给供应商。在寄售的…

java对接阿里云短信服务详解(验证码,推广短信,通知短信)

前言 小前提: - java:springboot框架,maven版本管理。 - 阿里云:有账号,已经进行实名认证。 java对接阿里云短信服务详解(验证码,推广短信,通知短信)前言1. 登录阿里云进…