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 访问被拒绝(使用密码:否)