如何在 MySQL 5.7 中创建六字符密码
How to create a six character password in MySQL 5.7
我需要在 mac 上的新 MySQL 中创建一个具有六个字符密码的用户。我知道 5.7 中的最低设置只允许八个字符。有什么办法可以解决这个问题吗?
我输入CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special'
输出错误
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
我相信您可以使用像这样的预散列密码来绕过它:-
CREATE USER 'newsier'@'localhost' IDENTIFIED WITH mysql_native_password
AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
但这确实意味着您需要先正确散列 special
,然后才能实际设置密码,然后您可以使用纯文本版本的密码。
您正在使用 password validation plugin。默认情况下,它只允许 8 个字符和更长的密码。因为它无法检查哈希值,@RiggsFolly 是正确的,pre-hashing 密码可以使用。
但是,如果您想要 change the options,则需要设置 validate_password_length
系统变量的值。您可以在配置文件中执行此操作或:
SET GLOBAL validate_password_length=6;
首先您使用 mysql -u root -p
登录并通过以下方式检查当前政策规则:
# SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 5 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
那么你可以随意更改以上任何一个变量:
# SET GLOBAL validate_password_length = 5;
# SET GLOBAL validate_password_number_count = 0;
# SET GLOBAL validate_password_mixed_case_count = 0;
# SET GLOBAL validate_password_special_char_count = 0;
最后您可以创建一个数据库和一个使用更简单的密码访问它的用户:
# CREATE DATABASE test1;
# GRANT ALL PRIVILEGES ON test1.* TO user1@localhost IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;
之后您可以使用 mysql -u user1 -p test1
使用密码 pass1
登录
MySQL 5.7+ 默认有一个 密码验证系统 。如果您不想严格遵守策略并需要分配自己的策略,则只需禁用密码验证并重新启动 mysqld 进程。
编辑my.cnf 文件:
vi /etc/my.cnf
在[mysqld]
validate-password=off
保存文件然后重启进程
sudo service mysqld restart
or
systemctl restart mysqld
然后使用以下方法更改 Root 密码,并按照不会为 Root 密码抛出异常的步骤进行操作。
mysql_secure_installation
or
/usr/bin/mysql_secure_installation
如果您是第一次安装并且想知道临时密码 然后使用以下内容找到 首次密码 :
grep 'temporary password' /var/log/mysqld.log
请在下面的评论框中告诉我您对此的评论。
可以通过以下 运行 完全禁用似乎过于严格的密码 "plugin":
uninstall plugin validate_password
如果您再次需要它,您可以通过以下方式重新打开它:
INSTALL PLUGIN validate_password SONAME 'validate_password.so'
您可以选择禁用它,设置密码并重新启用它:
uninstall plugin validate_password;
CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special';
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
进一步阅读:
这可能有帮助:
GRANT ALL ON wordpress.* TO 'user'@'localhost' IDENTIFIED WITH mysql_native_password AS'yourpassword';
通过
检查当前密码策略规则
SHOW VARIABLES LIKE 'validate_password%';
现在为这些变量设置新值:
SET GLOBAL validate_password_length = 6 ; // that you like
SET GLOBAL validate_password_policy = LOW ;
我需要在 mac 上的新 MySQL 中创建一个具有六个字符密码的用户。我知道 5.7 中的最低设置只允许八个字符。有什么办法可以解决这个问题吗?
我输入CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special'
输出错误
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
我相信您可以使用像这样的预散列密码来绕过它:-
CREATE USER 'newsier'@'localhost' IDENTIFIED WITH mysql_native_password
AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
但这确实意味着您需要先正确散列 special
,然后才能实际设置密码,然后您可以使用纯文本版本的密码。
您正在使用 password validation plugin。默认情况下,它只允许 8 个字符和更长的密码。因为它无法检查哈希值,@RiggsFolly 是正确的,pre-hashing 密码可以使用。
但是,如果您想要 change the options,则需要设置 validate_password_length
系统变量的值。您可以在配置文件中执行此操作或:
SET GLOBAL validate_password_length=6;
首先您使用 mysql -u root -p
登录并通过以下方式检查当前政策规则:
# SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 5 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
那么你可以随意更改以上任何一个变量:
# SET GLOBAL validate_password_length = 5;
# SET GLOBAL validate_password_number_count = 0;
# SET GLOBAL validate_password_mixed_case_count = 0;
# SET GLOBAL validate_password_special_char_count = 0;
最后您可以创建一个数据库和一个使用更简单的密码访问它的用户:
# CREATE DATABASE test1;
# GRANT ALL PRIVILEGES ON test1.* TO user1@localhost IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;
之后您可以使用 mysql -u user1 -p test1
使用密码 pass1
MySQL 5.7+ 默认有一个 密码验证系统 。如果您不想严格遵守策略并需要分配自己的策略,则只需禁用密码验证并重新启动 mysqld 进程。
编辑my.cnf 文件:
vi /etc/my.cnf
在[mysqld]
validate-password=off
保存文件然后重启进程
sudo service mysqld restart
or
systemctl restart mysqld
然后使用以下方法更改 Root 密码,并按照不会为 Root 密码抛出异常的步骤进行操作。
mysql_secure_installation
or
/usr/bin/mysql_secure_installation
如果您是第一次安装并且想知道临时密码 然后使用以下内容找到 首次密码 :
grep 'temporary password' /var/log/mysqld.log
请在下面的评论框中告诉我您对此的评论。
可以通过以下 运行 完全禁用似乎过于严格的密码 "plugin":
uninstall plugin validate_password
如果您再次需要它,您可以通过以下方式重新打开它:
INSTALL PLUGIN validate_password SONAME 'validate_password.so'
您可以选择禁用它,设置密码并重新启用它:
uninstall plugin validate_password;
CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special';
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
进一步阅读:
这可能有帮助:
GRANT ALL ON wordpress.* TO 'user'@'localhost' IDENTIFIED WITH mysql_native_password AS'yourpassword';
通过
检查当前密码策略规则SHOW VARIABLES LIKE 'validate_password%';
现在为这些变量设置新值:
SET GLOBAL validate_password_length = 6 ; // that you like
SET GLOBAL validate_password_policy = LOW ;