wlue 发表于 2020-10-27 16:01

用Navicat Premium 15从 MySQL8.0中导出的一个sql数据库文件再用它导入出错?

本帖最后由 wlue 于 2020-10-27 17:49 编辑

如题:在 MySQL8.0 中建了一个数据库,里面有几个表,建立了几个视图,这些视图中有一些稍微复杂的关系和计算,这些视图都是用Navicat Premium 15建立的,我用Navicat将这个数据库导出为sql文件保持下来。最近重新安装系统和 MySQL后,我要把原来导出的sql文件重新恢复进MySQL数据库中,可是用 Navicat 运行这个sql文件的时候总是提示错误:
开始 1146 - …… 某个视图不存在(可是我用记事本打开这个sql文件查看,这里面这个视图确实存在的)
……
结尾 Finished with error
运行完这个sql文件后查看数据库中只是把其中的表和数据恢复了,可是原来建立的视图一个也没有(这些视图才是最重要的结果)……
哪位大侠给找一下原因,给出个解决办法?先谢谢了!
另外,如果用 导出/导入为sql文件的方法不靠谱,那么用什么方法 备份、恢复、转移 MySQL数据库才最方便快捷?


janny82 发表于 2020-10-27 16:08

Navicat Premium 没问题 是不是你的编码有问题或者说版本不一样比如Mysql5.5后面还是有版本号的比如 5.5.2这种版本号我估计是版本号或者编码问题造成的~~~

liu8359 发表于 2020-10-27 16:10

直接备份数据库呀

l943644670 发表于 2020-10-27 16:12

版本号问题。8.0的数据库硬导入到5.x的肯定会出现问题的,有个土方法就是把想要的表导出excel,再导入到指定数据库的表里

imyxuan 发表于 2020-10-27 16:13

这里面有个视图的先后顺序的问题,视图可能相互有关联,假设视图A依赖于视图B,但是先导入A的时候就会报你这个错误

4EverYoung 发表于 2020-10-27 16:13

检查一下字符集,有时候导出来的数据字符集会变,导致跟目标数据库字符集不匹配。

wlue 发表于 2020-10-27 16:20

janny82 发表于 2020-10-27 16:08
Navicat Premium 没问题 是不是你的编码有问题或者说版本不一样比如Mysql5.5后面还是有版本号的比如 5.5. ...

MySQL的版本号都是8.0.12

wlue 发表于 2020-10-27 16:21

liu8359 发表于 2020-10-27 16:10
直接备份数据库呀

好的,谢谢

wlue 发表于 2020-10-27 16:22

l943644670 发表于 2020-10-27 16:12
版本号问题。8.0的数据库硬导入到5.x的肯定会出现问题的,有个土方法就是把想要的表导出excel,再导入到指 ...

这个方法有点麻烦呀,不过我的版本是一致的

wlue 发表于 2020-10-27 16:25

imyxuan 发表于 2020-10-27 16:13
这里面有个视图的先后顺序的问题,视图可能相互有关联,假设视图A依赖于视图B,但是先导入A的时候就会报你 ...

逻辑上说是对的,我再检查一下SQL文件的顺序试试,
不过这个问题 navicat考虑不到吗?用它导出的,还是用它导入的
页: [1] 2
查看完整版本: 用Navicat Premium 15从 MySQL8.0中导出的一个sql数据库文件再用它导入出错?