加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

navicat-mysql数据库传输遇到Invalid default value for 'tmptime' 报错的解决方法

(2018-03-26 23:07:11)
标签:

mysql

valuefor'tmptime'

分类: 网络技术
由于用centos新建了一台独立的mysql数据库服务器,需要将原来与脚本安装在同一台服务器的数据库迁移到新数据库服务器上,用navicat的数据传输功能来传,遇到报错信息:Invalid default value for 'tmptime'
原服务器数据库 mysql 5.5
新数据库服务器 mysql 5.7
查资料报错原因是,mysql 5.7有更严格的数据校验,MySQL 5.6以后timestamp设定默认值规则改变,时间字段不允许再设置”0000 00-00 00:00:00”这样的默认值。
解决方法:
查看sql_mode:
mysql> show session variables like '%sql_mode%';

| Variable_name | Value                                                                               
-----------------------------------------------------+
| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------------------------------------------------
修改sql_mode,去掉NO_ZERO_IN_DATE,NO_ZERO_DATE:
mysql> set sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

然后重新做数据传输就OK咯!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有