MySQL Error number: 3639; Symbol: ER_WARNING_PASSWORD_HISTORY_CLAUSES_VOID; SQLSTATE: HY000

文档解释

Error number: 3639; Symbol: ER_WARNING_PASSWORD_HISTORY_CLAUSES_VOID; SQLSTATE: HY000

Message: Non-zero password history clauses ignored for user ‘%s’@’%s’ as its authentication plugin %s does not support password history

错误说明

ER_WARNING_PASSWORD_HISTORY_CLAUSES_VOID(3639)错误表示Mysql检测到无效的口令历史子句。它可能是由于全局或会话级变量“validate_password_number_count”被设置到0造成的,这会禁用所有数据库级别的验证,因此加入到口令历史的子句也是无效的。

常见案例

错误ER_WARNING_PASSWORD_HISTORY_CLAUSES_VOID可能会在使用 ALTER USER语句并加入PASSWORD HISTORY子句时出现,或者在执行SET GLOBAL 或SET SESSION操作并将全局和会话级变量“validate_password_number_count”设置为0时可能会出现。

解决方法

1. 使用有效的口令历史子句:在此之前,您需要先验证口令历史子句是否有效,有效就可以执行ALTER USER语句来加入它。

2. 将变量validate_password_number_count设置为非零值:若变量validate_password_number_count被设置为0,就需要将其恢复到正常的非零数值。此时可以使用如下的SET指令来设置:

SET GLOBAL validate_password_number_count=1;

SET SESSION validate_password_number_count=1;

3. 使用新的ALTER USER语句:如果口令历史子句仍不起作用,就可以切换到新的ALTER USER语句(用于MYSQL 8+的版本),该指令会帮助用户修改用户名以及密码历史:

ALTER USER USER()

IDENTIFIED WITH mysql_native_password BY ‘password’

PASSWORD EXPIRE [ INTERVAL { ‘string’ | number } ]

PASSWORD HISTORY [ NUMBER number ] NO [REUSE PASSWORD];

4. 显式地干预管理:建议用户显式地进行管理,在使用ALTER USER指令时禁用口令历史,能够显著减少用户受到的错误ER_WARNING_PASSWORD_HISTORY_CLAUSES_VOID的影响。

你可能感兴趣的