zoukankan      html  css  js  c++  java
  • 关于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
     

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

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

    Policy Tests Performed
    0 or LOW Length
    1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
    2 or STRONG Length; 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,再尝试连接,如果还是出现同样的问题,则需要删除用户重建,或者新建用户。

  • 相关阅读:
    GridView 几个受保护的方法的注释
    完全理解 IDisposable 接口的实现
    C++ 函数调用约定和名称修饰
    硬盘格式转换不影响数据_ convert命令FAT32转NTFS
    Win7系统修复_修复光盘的制作与使用
    双网卡共享上网设置
    Windows?XP系统修复方法
    无线路由器与有线路由器的连接(两个路由器连接)
    无线路由器“无线漫游”
    登录路由器没有弹出登录框_路由器无法登录解决办法
  • 原文地址:https://www.cnblogs.com/yhqvod/p/8930980.html
Copyright © 2011-2022 走看看