【Mysql报错】执行开源项目sql文件全部或部分报错的解决方法

适应情况

当我们从github或者gitee上下载一些web开源项目的时候会附带sql文件用于导入数据库,有时候假如说用Navicat或者直接在命令行中使用source命令导入,会出现部分或者全部报错的情况,如下图

在这里插入图片描述

解决方法

情况一:编码格式不同

  • 1、在Navicat中选择并打开对应数据库之后,右击数据库名字点击打开新建查询
  • 2、在桌面上建立一个文本文档,之后点击左上角另存为,这时候关键点在于将下方的编码从原本的UTF-8调整为ANSI,并保存,此时这个记事本便成为了ANSI格式
    在这里插入图片描述
  • 3、之后通过记事本的方式打开会报错的sql文件,将里面内容全部复制进,刚刚创建的那个修改为ANSI格式的记事本中
  • 4、之后,把那个格式为ANSI格式的记事本中的内容,再次复制进入新建查询中,并点击运行就可以了
    在这里插入图片描述

情况二:数据库版本不同(占比较大可能)

版本问题常常出现在高版本Mysql数据导入低版本Mysql中
举一个简单的例子,比如报错Unknown collation: ‘utf8mb4_0900_ai_ci’
其原因就是由于Mysql在进行迭代的时候对于不同的字符集叫法也不同了
这个时候只要把脚本中的一些词批量替换就可以了,网上教程很多,这里不多说了
这个类型是版本报错中最好的情况
emmm,像其他情况就比较难解决,可能会有很多有关关键字之类的冲突等等,假如可以联系到作者,可以让作者使用Navicat自带的数据传输功能让高版本兼容低版本Mysql,假如要自行修改里面的sql代码,需要根据报错直接搜既可,大多数情况下也是和上面那个字符问题很类似的,但是由于不确定因素比较多,这里我的推荐解决方案是装对应版本或者高版本的Mysql


一些小想法:情况一是作者自己解决一些数据库问题时,发现的一个解决方法,可能不一定百分百有效,是这次主要想说的,假如ANSI格式不行可以试试别的常见的格式哈,情况二是看网上有关这种高兼低的技术手段已经比较全了,所以就不具体说了,希望能解决大家的问题吧:>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值