共计 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 行业资讯频道。