win处navicat直接导出的sql脚本导入Linux mysql报错问题

最近几天在把win上的项目的数据库转移到Ubuntu,于是第一件事就是从win处的navicat直接导出sql脚本,然后进入Ubuntu导入的时候会报错误,跳过错误继续执行导致数据库表的缺失。

跨平台错误的操作如下:

如果都是win下的话,上边的这种操作是可以的,导入导出都没有错误,可是到了Linux下的时候,就会出现sql错误,最开始还以为是因为数据库版本问题,在Ubuntu下安装了好几个版本,最后停在了8.0.3最新的版本。之后问同事知:navicat导出的sql是经过navicat改变了的。

手动打开sql文件发现,如图: 

最下边使用的是游标之类的东西,可是手写sql的时候我们知道一般保存的sql都是建表语句和插入语句的集合。

于是查了navicat的其他导出sql的办法,得出了方法一:先备份,然后提取sql

貌似可以直接提取,总之从这里提取的sql脚本是可以导入Linux成功并没有错误的。(几乎不存在mysql版本问题)

方法二:使用命令行直接导出

#命令行进入mysql根目录(以我的路径举例)
cd c:mysqlin
mysqldump -uroot -p 数据库名 > xxx.sql

输入密码后,会自动导出sql到bin目录下,找到之后就可以用它来导入Linux了

导入Linux的话可以使用navicat,参考我的另一篇帖子 http://www.cnblogs.com/hellxz/p/7638238.html

原文地址:https://www.cnblogs.com/hellxz/p/7654434.html