MySQL未知列'password_last_changed'

Posted

技术标签:

【中文标题】MySQL未知列\'password_last_changed\'【英文标题】:MySQL unknown column 'password_last_changed'MySQL未知列'password_last_changed' 【发布时间】:2015-06-09 21:37:11 【问题描述】:

使用此命令创建用户时:

create user 'foo'@localhost';

显示此错误:

错误 1054 (42S22):“mysql.user”中的未知列“password_last_changed”

使用 MySQL 服务器版本:5.7.6

我尝试添加它,但我不知道它的数据类型 我该如何解决这个问题?

【问题讨论】:

看起来很奇怪,如果/因为它是由CREATE USER 触发的。也许在 DBA 堆栈上尝试一下。 (默认数据库架构本身会不会导致迁移/更新失败?) dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html 【参考方案1】:

显然您将 MySQL 从早期版本升级到了 5.7。

列 'password_last_changed' 曾经存在于 MySQL

如果是这种情况,您必须运行“mysql_upgrade”脚本将一些表从旧版本迁移到新版本。

运行

mysql_upgrade -u root -p

并输入您的 root 密码。

那么你的问题应该解决了

【讨论】:

喜欢你的回答,但我不需要重新启动服务器,我想我还没有遇到任何问题.. Windows系统请关注serverfault.com/a/538573/127106定位mysql_upgrade.exe 我删除了重启服务器步骤,发现它不是真的需要 不错。我只会添加您以重新启动您的 MySql 服务器,因此您确定包含更改,sudo service mysql restart。看看Ask Ubuntu Discussion

以上是关于MySQL未知列'password_last_changed'的主要内容,如果未能解决你的问题,请参考以下文章

Mysql嵌套子查询未知列错误

Python/MySQL 查询错误:`未知列`

#1054 - MySQL 中“where 子句”中的未知列“proximite”

触发器中的 MySQL 错误“'NEW' 中的未知列”

有一个 mySQL 错误,未知列 where 子句 [重复]

mysql #1054 使用 phpmyadmin 的未知列 [关闭]