关于mysql初始化以及安全策略无法修改的问题

通过mysql官方的yum源来安装的mysql-community-server ,这里版本是MySQL 8.0。

wget 
rpm -ivh  mysql80-community-release-el7-1.noarch.rpm
yum  install  mysql-community-server
service mysqld start
 

第一次启动后会有个初始化的过程,会产生root账户的随机密码。

为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error_log中,关于error_log的位置,如果安装的是RPM包,则默认是 /var/log/mysqld.log 。

可以通过 grep 'temporary password' /var/log/mysqld.log 查找密码:

登陆上过后,进行正常操作会受限,提示你必须修改密码后才能进行操作。

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

根据提示修改密码:

mysql> SET PASSWORD = PASSWORD( '123456' ); 
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> SET PASSWORD = PASSWORD( "root" );
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
 

但是提示根据当前密码策略,设置的密码不允许。

查阅官方文档后发现有以下三种密码策略:

PolicyTests Performed
0 or LOWLength
1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file

当前密码策略默认为1 也就是 MEDIUM,但是当你使用:show VARIABLES like "%password%"; 来查看当前策略时,发现还是会让你先修改密码(这个比较坑)

接下来修改安全策略(跟进实际环境需要,生产环境简单密码可能不安全):

set global validate_password_policy = 0;

以上这条语句是所有人都这么用,好像没什么毛病,但是到我这儿就不好使啊/cry

 

比较郁闷

Google、百度了好久也没结果。咋整?

 

有了 , 管它呢,先改密码,设置一个包含大小写字母、数字和特殊符号的密码,OK,搞定,然后再来查看安全策略:

show VARIABLES like "%password%"; 

妮玛,怎么下划线变成“.”了???

 

好吧现在可以根据需要修改安全策略了:

set global validate_password.policy = 0;

validate_password_number_count指定了密码中数据的长度

validate_password_special_char_count指定了密码中特殊字符的长度

validate_password_mixed_case_count指定了密码中大小字母的长度

 

官方的一些说明:https://dev.mysql.com/doc/refman/8.0/en/validate-password.html

 

补充--->

关于各种MySQL GUI Client无法连接mysql server,且提示

Authentication plugin 'caching_sha2_password' cannot be loaded

这个问题是由于新版本mysql默认启用caching_sha2_password加密方式,而client无法支持,但是shell是可以连接的。

解决方法:

在/etc/my.cnf文件中添加一行代码,有可能这行代码是已存在,但是被注释掉了

[mysqld]
default_authentication_plugin=mysql_native_password

重启mysql server,再尝试连接,如果还是出现同样的问题,则需要删除用户重建,或者新建用户。

 

转载于:https://www.cnblogs.com/yhqvod/p/8930980.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值