在 MySQL 5.7.16 版本中,升级后默认情况下不再直接使用用户表记录用户信息,而是使用了一个名为 mysql.user
的视图来访问用户表。因此,当我们在该版本下修改密码时,需要使用 UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE user='用户名';
命令,而不是之前的 UPDATE user SET password=PASSWORD('新密码') WHERE User='用户名';
命令。
如果尝试使用旧命令修改密码,会提示错误 "ERROR 1054 (42S22): Unknown column 'password' in 'field list'"。
以下是修改密码的完整攻略:
步骤1
首先,登录 MySQL:
mysql -u 用户名 -p
输入密码后,进入 MySQL 的命令行模式。
步骤2
确认当前版本是否为 MySQL 5.7.16 或更新版本:
SELECT VERSION();
如果显示的版本号为 MySQL 5.7.16 或更高版本,则需要执行新的修改密码命令。
步骤3
使用新的命令来修改密码:
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE user='用户名';
其中,新密码
为要设置的新密码,用户名
为要修改密码的用户的用户名。
示例说明 1
假设我们要修改用户名为 test
的用户密码为 123456
,则可以执行以下命令:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='test';
如果修改成功,MySQL 会返回一个提示:Query OK, 1 row affected。
示例说明 2
如果要同时修改多个用户的密码,可以一次性执行多个 UPDATE
命令,如下所示:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='test1';
UPDATE mysql.user SET authentication_string=PASSWORD('abcdef') WHERE user='test2';
UPDATE mysql.user SET authentication_string=PASSWORD('hello') WHERE user='test3';
这样可以依次修改每个用户的密码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL 5.7.16 修改密码提示 ERROR 1054 (42S22): Unknown column ”password” in ”field list”的原因 - Python技术站