我有一个问题,默认情况下服务器启用旧密码,所以一个简单的SET PASSWORD FOR'some-user'@'%'= PASSWORD('XXXX');不会工作(因为旧的软件和遗产,我不会进入......)
方案:
SET old_passwords = 0;
SET PASSWORD FOR 'some-user'@'%' = PASSWORD ('XXXX');
FLUSH PRIVILEGES;
细节 :
以登录用户身份执行此操作
SET Password = PASSWORD('password')
根本没用
例如,这里可测试
SHOW CREATE TABLE `mysql`.`user`;
密码不会转移到
| HOST | USER | PASS |
旧密码
| % | some-user | 7fa559aa33d844b4 |
我想要什么,新的密码
| % | some-user | *CF04AECA892176E6C0C8206F965C03374D12F93E |
所以我查找旧密码的变量
SHOW VARIABLES;
...
old_passwords = ON
...
所以基本上我必须先将mysql服务器var设置为old_password = OFF,例如这对我有用
SET old_passwords = 0;
SET PASSWORD FOR 'some-user'@'%' = PASSWORD ('XXXX');
FLUSH PRIVILEGES;