MySQL错误 - 您必须设置密码/密码哈希值应为41位十六进制数

时间:2015-05-08 15:13:46

标签: mysql mediawiki

全部,这可能是一个简单的修复,但我似乎无法让它正常工作......

我试图建立一个MySQL数据库(在RHEL上),但收到以下错误:

mysql> SELECT 1;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD = PASSWORD('new_pass');
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
mysql> SELECT PASSWORD('new_pass');
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

我已尝试过所有可能的命令/查询,但我无法绕过这两条错误消息。也许有些事情与我的权限有关?有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:5)

使用此SET old_passwords = 0;

  

old_passwords系统变量值确定散列方法   由PASSWORD()使用。如果SET PASSWORD拒绝密码   如果格式正确,可能需要将old_passwords更改为   改变散列方法。例如,如果帐户使用   mysql_native_password插件,old_passwords值必须为0:

     

SET old_passwords = 0;   为'jeffrey'设置密码@'localhost'=   PASSWORD( '为mypass');如果old_passwords值与此不同   身份验证插件所需的哈希密码值   由PASSWORD()返回的插件是不可接受的,并尝试   设置密码会产生错误。例如:

     

的MySQL> SET old_passwords = 1;   MySQL的>设置密码   'jeffrey'@'localhost'=密码('mypass');错误1372(HY000):   密码哈希值应为允许的41位十六进制数   old_passwords值将在本节后面介绍。

     

使用OLD_PASSWORD()函数(仅在MySQL 5.7.5之前允许):

答案 1 :(得分:1)

如果要更改mysql的密码,则应使用以下命令代码,

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('New_Password');