navicat部署测试环境,加载从生产环境转储的sql文件,加载失败,报错。
出现这种错误的原因有很多,我目前遇到的有两种。
- mysql版本不同。
生产环境的mysql版本mysql5.7,而测试环境是mysql5.6,因此有些sql语句不兼容。
解决方式有两种:
- 更换mysql版本(比较麻烦,尤其是集成环境)
- 开启要复制的数据库的远程连接,利用navicat远程连接服务器,然后使用navicat的数据传输功能进行传输(或者直接全选copy再粘贴到本地)关于开启远程连接功能的方式可以查看这篇文章: https://www.jianshu.com/p/0fe0d9ecad2b或者自己搜索。或者你也可以自己搜索。
2.版本相同,但是某些语句不兼容
我出现的情况是,时间数据为“0000-0000”什么的,在数据库中可以是这个值,但是转储语句创建的时候不合法。
情况可能不同,你们具体的可以取消勾选“错误时继续”,这样一旦出现错误便会停止,将显示的信息往上拉,最上面的就是报错。
利用navicat
查找错误的数据,然后把那些错误的数据修改成正确的数据,转储sql,移动到新的地方加载。
当然,这个错误也可以通过数据传输功能解决。