mySQL 密码策略拒绝所有创建用户的尝试

Posted

技术标签:

【中文标题】mySQL 密码策略拒绝所有创建用户的尝试【英文标题】:mySQL password policy refuses all attempts to create user 【发布时间】:2016-11-10 09:46:00 【问题描述】:

我当前在我的 ubuntu 服务器上安装的 mysql/phpMyAdmin 拒绝允许使用我尝试过的任何密码创建任何用户。错误总是:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

我以前从未在服务器和 xampp/localhost 上安装其他 mysql 时遇到此错误。然而,这是一个新的服务器安装。

例如,在命令行的mysql终端上,任何创建用户(密码极其随机)的尝试都会失败

mysql> CREATE USER 'ses'@'%' IDENTIFIED BY 'yIO8v3hVai0zosaD';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> CREATE USER 'ses'@'%' IDENTIFIED BY 'yIO8v3hVai0zosaDyIO8v3hVai0zosaDyIO8v3hVai0zosaD';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

与 phpMyAdmin 相同

底部出现以下错误

Warning in ./libraries/dbi/DBIMysqli.class.php#261
 mysqli_query(): (HY000/1819): Your password does not satisfy the current policy requirements

Backtrace

./libraries/dbi/DBIMysqli.class.php#261: mysqli_query(
object,
string 'SELECT PASSWORD(\'rSxYcnCcO2fhhKgD\') AS `password`;',
integer 0,
)
./libraries/DatabaseInterface.class.php#244: PMA_DBI_Mysqli->realQuery(
string 'SELECT PASSWORD(\'rSxYcnCcO2fhhKgD\') AS `password`;',
object,
integer 1,
)
./libraries/DatabaseInterface.class.php#1944: PMA_DatabaseInterface->tryQuery(
string 'SELECT PASSWORD(\'rSxYcnCcO2fhhKgD\') AS `password`;',
object,
integer 1,
boolean false,
)
./libraries/server_privileges.lib.php#5055: PMA_DatabaseInterface->fetchSingleRow(string 'SELECT PASSWORD(\'rSxYcnCcO2fhhKgD\') AS `password`;')
./libraries/server_privileges.lib.php#5179: PMA_getHashedPassword(string 'rSxYcnCcO2fhhKgD')
./libraries/server_privileges.lib.php#4176: PMA_getSqlQueriesForDisplayAndAddUser(
string 'test-accountdb',
string '%',
string '',
)
./server_privileges.php#167: PMA_addUser(
NULL,
string 'test-accountdb',
string '%',
NULL,
boolean true,
)

编辑:为 mysql validate_password% 变量添加了结果

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

【问题讨论】:

如果你运行这个命令你会看到什么? SHOW VARIABLES LIKE 'validate_password%'; 感谢您的回复。我已经添加了验证密码的结果。我以前检查过这个,但它似乎没有什么不寻常的。 是的,您尝试过的密码看起来像根据这些值允许使用的密码。在您的 my.ini 文件中是否有任何引用 validate_password 的内容? 我收回了。此密码yIO8v3hVai0zosaDyIO8v3hVai0zosaDyIO8v3hVai0zosaD 不包含特殊字符。尝试将$* 添加到您的密码之一。 很好,很好的收获。我使用的是 phpMyAdmin 生成按钮,它从未生成特殊字符。有时它也没有生成数字,所以我只是确保它们都在里面。如果您将此作为答案,我会接受。谢谢 【参考方案1】:

这是工作中的Validate Password Plugin。它是在 MySQL 5.6.6 中引入的。

根据SHOW VARIABLES LIKE 'validate_password%'; 返回的值,您的密码中缺少一个特殊字符,如validate_password_special_char_count | 1 所示。

$* 等特殊字符添加到此密码yIO8v3hVai0zosaD,您将能够创建用户。

【讨论】:

再次感谢,生病添加票。我真的没想过要检查密码要求,因为我正在使用那个按钮。另一个不要假设计算的教训,我应该知道得更好。【参考方案2】:

程序 1:

Step1:使用root用户ane和密码登录

Step2:在Sql终端运行下面​​的命令

 uninstall plugin validate_password 

Step3 : 使用你想要的任何密码创建一个新用户

Step4:在Sql终端运行波纹管命令

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Step5:现在通过登录结帐您的用户名和密码

程序 2:

在此密码中添加一个特殊字符,如 $ 或 *,包括其他大小写,如数字、小写字符、大写字符

【讨论】:

以上是关于mySQL 密码策略拒绝所有创建用户的尝试的主要内容,如果未能解决你的问题,请参考以下文章

我收到此错误消息:用户访问被拒绝(使用密码是)

用户“root@localhost”的访问被拒绝(使用密码:否)

用户 'root'@'localhost' 的 ASP.NET MVC MySQL 访问被拒绝(使用密码:否)

运行python app时,MySql Access被拒绝[Ubuntu 1604 / NGINX / uWSGI]

Mysql登录无密码,拒绝密码

MySQL # MySQL对用户权限的简单操作:创建新用户赋权限