最近几天在把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:\mysql\bin
mysqldump -uroot -p 数据库名 > xxx.sql
输入密码后,会自动导出sql到bin目录下,找到之后就可以用它来导入Linux了。
导入Linux的话可以使用navicat,参考:http://www.linuxdiyf.com/linux/32772.html