最近由于项目要求,需要将db2数据库迁移到mysql数据库。具体步骤如下:
1、使用navicat新建一个数据库作为db2数据库中的数据表结构及数据的接收者
2、右键表点击“导入向导”
3、选择ODBC,点击下一步
4、选择“IBM OLE DB Provider for DB2 - DB2COPY1”,点击下一步
5、这里可以选择本地的db2数据源,也可以选择服务器上的数据库,填写完毕后点击下一步
6、这些就是你db2数据库中的表,可以根据要求勾选,点击下一步
7、在这一步中可以对数据结构进行修改,直接下一步
8、在这一步中选择是否要把db2表中的数据一并导入
9、点击开始,如果有报错可以点击日志查看
我这次导入所遇到的问题:
1、由于db2数据库有的数据表中有timestamp的数据类型,在导入mysql5.7中的时候会报“invalid default value for time“ ,这个问题是由于mysql版本的问题,在mysql5.7版本中对于timestamp的默认值已经不能是0000 00-00 00:00:00。
解决方法:修改sql_mode;查看cat /etc/my.cnf,发现sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
将标红的去掉就可以了。去掉后要重启mysql服务