在 mysql 版本 8 中从 mysql cli 错误调用 mysql 函数密码
Calling mysql function PASSWORD from mysql cli error in mysql ver 8
我正在使用 mysql 版本 8.0
从 mysql cli 我正在尝试调用函数 PASSWORD。所以我使用了以下命令:
mysql > select 密码('123');
但是在这种情况下我得到以下错误:
ERROR 1064 (42000):您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1 行
附近使用“('123')' 附近的正确语法
我也试过以下方法:
mysql > select 密码("123");
mysql > select 密码(`123`);
但是每一个都给出相同的错误。我也用谷歌搜索了很多,但找不到任何解决方案。
我该如何解决这个问题
此致,
坦维尔
PASSWORD()
在 5.7 中被弃用并在版本 8 中被移除。现在有更安全的密码处理方法,您应该考虑使用一种。
正如 mysql 关于 password() function 的文档所说:
This function was removed in MySQL 8.0.11.
如mysql文档所述,您应该使用alter user statement更改密码:
ALTER USER syntax is the preferred statement for account alterations, including assigning passwords. For example:
ALTER USER user IDENTIFIED BY 'auth_string'
直接更新 ACL 系统表(或与此相关的任何系统表)不是一种非常可持续的做法。
为什么需要执行
UPDATE mysql.user SET password = hash('clear-text-password') WHERE host = 'foo' and user = 'bar'
接着是 FLUSH PRIVILEGES (!)
当你可以做的时候:
更改用户 foo@bar 由 'clear-text-password' 识别?
我正在使用 mysql 版本 8.0
从 mysql cli 我正在尝试调用函数 PASSWORD。所以我使用了以下命令:
mysql > select 密码('123');
但是在这种情况下我得到以下错误: ERROR 1064 (42000):您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1 行
附近使用“('123')' 附近的正确语法我也试过以下方法:
mysql > select 密码("123");
mysql > select 密码(`123`);
但是每一个都给出相同的错误。我也用谷歌搜索了很多,但找不到任何解决方案。
我该如何解决这个问题
此致, 坦维尔
PASSWORD()
在 5.7 中被弃用并在版本 8 中被移除。现在有更安全的密码处理方法,您应该考虑使用一种。
正如 mysql 关于 password() function 的文档所说:
This function was removed in MySQL 8.0.11.
如mysql文档所述,您应该使用alter user statement更改密码:
ALTER USER syntax is the preferred statement for account alterations, including assigning passwords. For example:
ALTER USER user IDENTIFIED BY 'auth_string'
直接更新 ACL 系统表(或与此相关的任何系统表)不是一种非常可持续的做法。
为什么需要执行 UPDATE mysql.user SET password = hash('clear-text-password') WHERE host = 'foo' and user = 'bar' 接着是 FLUSH PRIVILEGES (!) 当你可以做的时候: 更改用户 foo@bar 由 'clear-text-password' 识别?