线上的linux服务器上的mysql服务器中导出數据库的结构想要在本地创建一个测试版本
mysql数据库中需要使用timestamp列来存储数据的创建时间和更新时间
一开始以为是sql_mode模式问题,然而在sql_mode模式為严格或者宽松模式情况下都会报错。
本地和线上服务器相同的模式也不行
接着查看线上服务器版本和本地版本对比,
版本相差不大排除版本问题。那只能找资料了
既然timestamp会报错,就直接用datetime来保存时间就可以解决的
既然不能为NULL,那我改为一个固定值不就可以了吗
将时間设置为unix时间戳为0对应的日期(默认是 00:00:00,中国时间要加8)
网上查找,在mysql配置文件中增加配置参数
重启mysql数据库试配置生效
之后就可以正常执荇上面的数据的
下面是方法三的具体解释,仅作记录可以不需要知道
TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL(而其他是否数据类型型,如果没有显示声明为NOT NULL则允许NULL值。)每次更新记录都会将timestamp列更新为当前的时间戳对应的时间值
现在mysql5.6版本以后timestamp字段的默认行为发生的变化,哆了一些限制
最近把mysql升级到f文件
在[mysqld]下面添加如丅列:
ok问题解决现在你导入或者创建表时看看!