mysql密码至少要设置16位?

mysql密码是不是至少要设置16位?
记得在哪晃眼看到一下,有什么说道么?

阅读 7.3k
4 个回答

具体看版本,没有具体要求到密码必须为16位。在mysql 5.7之后的版本中,初始自动生成密码也仅为12位左右而已。

而你所看到的16位,是指加密模式。

MYSQL数据库的认证密码有两种方式:

  1. MYSQL 4.1版本之前是MYSQL323加密,生成的是16位字符串
  2. MYSQL 4.1和之后的版本都是MYSQLSHA1加密,生成的是41位字符串。

MYSQL数据库中自带Old_Password(str)和Password(str)函数,它们均可以在MYSQL数据库里进行查询,前者是MYSQL323加密,后者是MYSQLSHA1方式加密。

其他的不知道,我昨天设置了一个四位纯数字密码。

mysql的密码策略有关,密码长度要求具体是与参数validate_password_length有关。

mysql5.7查看现有的密码策略:

mysql> SHOW VARIABLES LIKE 'validate_password%';

参数解释:

  1. validate_password_dictionary_file 指定密码验证的文件路径;
  2. validate_password_length 密码最小长度
  3. validate_password_mixed_case_count 密码至少要包含的小写字母个数和大写字母个数;
  4. validate_password_number_count 密码至少要包含的数字个数
  5. validate_password_policy 密码强度检查等级,对应等级为:0/LOW、1/MEDIUM、2/STRONG,默认为1。

    注意:
    0/LOW:只检查长度;
    1/MEDIUM:检查长度、数字、大小写、特殊字符;
    2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
  6. validate_password_special_char_count密码至少要包含的特殊字符数

通常我们只关注validate_password_policy和validate_password_length:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=4;

应该和策略有关而跟版本无关吧。
我记得我的还是6位纯数字密码……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题