db2数据库迁移到mysql5.7

时间:2024-04-06 21:51:53

最近由于项目要求,需要将db2数据库迁移到mysql数据库。具体步骤如下:

1、使用navicat新建一个数据库作为db2数据库中的数据表结构及数据的接收者

db2数据库迁移到mysql5.7

2、右键表点击“导入向导”

db2数据库迁移到mysql5.7

3、选择ODBC,点击下一步

db2数据库迁移到mysql5.7

4、选择“IBM OLE DB Provider for DB2 - DB2COPY1”,点击下一步

db2数据库迁移到mysql5.7

5、这里可以选择本地的db2数据源,也可以选择服务器上的数据库,填写完毕后点击下一步

db2数据库迁移到mysql5.7

6、这些就是你db2数据库中的表,可以根据要求勾选,点击下一步

db2数据库迁移到mysql5.7

7、在这一步中可以对数据结构进行修改,直接下一步

db2数据库迁移到mysql5.7

8、在这一步中选择是否要把db2表中的数据一并导入

db2数据库迁移到mysql5.7

9、点击开始,如果有报错可以点击日志查看

db2数据库迁移到mysql5.7

 

我这次导入所遇到的问题:

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服务