mysql datetime报错如何解决

61次阅读
没有评论

共计 1306 个字符,预计需要花费 4 分钟才能阅读完成。

今天丸趣 TV 小编给大家分享一下 mysql datetime 报错如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

mysql datetime 报错的解决办法:1、将 datetime 改成时间戳 timestamp;2、将 MySQL 升级为高版本;3、执行“ALTER USER root @ localhost IDENTIFIED BY root1 PASSWORD EXPIRE NEVER;”命令即可。

MySQL 建表时 datetime 报错

在 student 数据库中创建 stu 表,执行以下建表语句

CREATE TABLE stu ( id int(12) NOT NULL AUTO_INCREMENT,
 name varchar(150) CHARACTER SET utf8 DEFAULT NULL,
 age int(20),
 createTime datetime DEFAULT CURRENT_TIMESTAMP,
 updateTime datetime DEFAULT CURRENT_TIMESTAMP,
 PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

报 Invalid default value for createTime 错,上网百度说是 MySQL5.6 之后才支持 datetime 设置默认值,然后将 datetime 改成时间戳 timestamp。

再次执行时,报 Incorrect table definition; there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATEclause 错,这个是因为为多个 timestamp 设置 current_timestamp。

最好的解决办法是将 MySQL 升级为高版本,比如说 5.7,8.0,我从官网下载 MySQL8.0 版后,安装完成,使用 Navicat 连接 MySQL 报 2059 的错。据说是因为 8.0 和之前版本的加密规则不一致导致的。

使用命令行进入 MySQL 界面,输入下面的命令即可

# 注意:root1 是连接数据库的密码,可以更改为自己想用的密码
ALTER USER  root @ localhost  IDENTIFIED BY  root1  PASSWORD EXPIRE NEVER; # 修改数据库的加密规则  
ALTER USER  root @ localhost  IDENTIFIED WITH mysql_native_password BY  root1  # 更新一下 localhost 的密码  
FLUSH PRIVILEGES; # 刷新权限 

以上就是“mysql datetime 报错如何解决”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计1306字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)