多语言展示
当前在线:1959今日阅读:27今日分享:41

mysql创建用户时提示不符合当前政策要求

安装好mysql 5.7版本后,准备用来测试,创建测试用户的时候,提示我:your password does not satisfy the current policy requirements.下面来一起看看解决办法。
工具/原料

mysql 5.7

方法/步骤
1

报错提示如下面图中所示,配置的默认密码是123456,提示不符合政策要求。于是我就到网上去搜了一下,结果发现是和validae_password_policy这个变量有关,在mysql5.7版本上针对用户的密码制定了对应的策略。

2

于是我到mysql的官网上搜索validate_password_policy这个字段,找到下面图中的内容。文档是英文的,这里翻译如下:政策级别       执行的测试0或LOW        长度1或MEDIUM  长度、数字、大小写或特殊字符2或STRONG  长度、数字、大小写、特殊字符以及字典文件。

3

可以说就是根据这个值来检查你设置的密码是否符合对应的要求,于是我来查来一下我安装的mysql 5.7版本的值。查看变量的命令是:show variables like 'validate_password_%';结果如下面图中所示,可以看到,默认的设置就是MEDIUM级别,需要长度满足要求,同时还要求有数字、大小写和特殊字符。难怪刚才设置的时候提示不符合政策要求呢。

4

但是在测试的时候一般不需要这么复杂的密码,于是将这个变量值修改为0或LOW,如下面图中所示,这个变量是个全局变量。修改命令如下:SET GLOBAL valiate_password_policy = 0;修改完成后再查看一次,确认修改成功。如下面图中所示:

5

然后我再来创建测试用户,但是第一次使用的密码是123456,提示不符合要求。可见6位长度的密码是不符合要求的,于是改成12345678,这次可以设置成功了。为了测试最小密码长度,又创建一个测试用户,密码设为1234567,提示不符合要求。因此可以知道policy=0的时候,最小密码长度是8位。

6

为了测试这个变量的生效时间,我先退出,然后重新登陆,再查看变量的值,发现变量没有改变,还是LOW。如下面第一张图中所示。于是再次退出,这次重启mysql服务器,重启完成后再次登陆查看变量的值,这次变量的值变为MEDIUM,说明服务器重启后,设置的变量值会失效。因此,如果测试环境需要经常重启的话,最好将这个变量的值写入配置文件中去。

注意事项
1

新版本的mysql安全策略越来越严格,因此遇到问题要多看官方文档。

2

本人原创,转载请声明。

推荐信息