1

我正在使用 mysql 8.0 版

从 mysql cli 我试图调用函数 PASSWORD。所以我使用了以下命令:

mysql > 选择密码('123');

但在这种情况下我收到以下错误: ERROR 1064 (42000): You have an error in your SQL syntax; 检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '('123')' 附近使用正确的语法

我还尝试了以下方法:

mysql > 选择密码(“123”);

mysql > 选择密码(`123`);

但是每一个都给出相同的错误。我也搜索了很多,但找不到任何解决方案。

我该如何解决这个问题

问候,坦维尔

4

3 回答 3

2

正如密码()函数的mysql文档所说:

这个函数在 MySQL 8.0.11 中被移除。

正如 mysql 文档所说,您应该使用alter user 语句来更改密码:

ALTER USER 语法是帐户更改的首选语句,包括分配密码。例如:

ALTER USER user IDENTIFIED BY 'auth_string'
于 2018-06-16T14:29:01.303 回答
0

PASSWORD()在 5.7 中已弃用并在版本 8 中删除。有更安全的密码处理方法,您应该考虑使用一种。

于 2018-06-16T10:35:02.740 回答
0

直接更新 ACL 系统表(或任何系统表)不是一种非常可持续的做法。

为什么你需要执行 UPDATE mysql.user SET password = hash('clear-text-password') WHERE host = 'foo' and user = 'bar' 后跟 FLUSH PRIVILEGES (!) 当你可以做的时候: ALTER用户 foo@bar 由“明文密码”识别?

于 2018-06-28T08:10:10.540 回答