全部,这可能是一个简单的修复,但我似乎无法让它正常工作......
我试图建立一个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
我已尝试过所有可能的命令/查询,但我无法绕过这两条错误消息。也许有些事情与我的权限有关?有什么想法吗?谢谢!
答案 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');