MySQL修改密码

注:此篇文章基于 MySQL8.0 版本。

关于修改密码

  • 直接设置

    mysqladmin -u root -p password 123456.
    在这里插入图片描述
    说明:执行此命令会要求输入原密码,且会警告操作不安全。

  • SQL语句

    ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
    在这里插入图片描述
    报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(密码不符合当前的策略要求),MySQL8.0 以上密码策略要求必须要大小写字母加数字及特殊符号,如:abcABC123@,或者见下节修改密码策略。

  • 丢失root密码

    修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1,即可跳过密码验证,重启 mysqld 服务:systemctl restart mysqld,连接数据库,无需输入密码,直接回车即可登录MySQL。

    直接执行修改语句会报错,如下图所示:
    在这里插入图片描述
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement,此时需要刷新权限 flush privileges; 再执行修改语句。

    修改完成后,将 /etc/my.cnfskip-grant-tables 配置项删除,重启MySQL服务。

关于密码策略

  • 查看密码策略

    SHOW VARIABLES LIKE 'validate_password%';
    密码策略
    参数说明:
    validate_password.check_user_name
    用户名检测

    validate_password_dictionary_file
    插件用于验证密码强度的字典文件路径

    validate_password_length
    密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

    validate_password_mixed_case_count
    密码至少要包含的小写字母个数和大写字母个数

    validate_password_number_count
    密码至少要包含的数字个数

    validate_password_policy
    密码强度检查等级

    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,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符

    validate_password_special_char_count
    密码至少要包含的特殊字符数

  • 修改密码策略

    set global validate_password.policy=LOW;

    set global validate_password.length=6;

    ALTER user 'root'@'localhost' IDENTIFIED BY '123456';

    说明:需要注意 MySQL8.0 较之前版本策略变量名有区别。

  • 查询密码策略

    select @@validate_password.length;
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值