MySQL修改数据库密码

MySQL修改数据库密码

背景描述

远程(非服务器操作)修改服务器的数据库密码为强密码

操作环境

  • MySQL :8.0.26

具体步骤

  • ssh登录

    ssh root@192.168.100.148
    

    在这里插入图片描述

  • 登录数据库

    mysql -uroot -p
    

    在这里插入图片描述

  • 查看用户表

    select user, host from mysql.user;
    

    输入MySQL指令时别忘了最后的分号。

    在这里插入图片描述

    注意user对应的host,尽量不要%localhost混写,可能会导致错误。
    以下假设我们要修改root的密码。

  • 查看密码规则

    show variables like "validate_password%";
    

    在这里插入图片描述

    其中的validate_password.length限制了密码的最短长度,validate_password.policy限制了密码的强度(例如是否必须是字母数字和符号的混合)。若想改为弱密码(比如123456),一般需要修改这两个变量。

  • 修改密码

    alter user 'root'@'%' identified by '123456';
    

    在这里插入图片描述

异常处理

your password does not satisfy the current policy requirements
  • 错误现象

在这里插入图片描述

  • 错误原因

    密码的强度不符合现有的密码规则,一般在修改密码为弱密码时出现。

  • 解决方法

    # 允许弱密码
    set global validate_password.policy = 0;    
    # 密码最短长度为1
    set global validate_password.length = 1;    
    

    在这里插入图片描述

  • 重新设置

在这里插入图片描述

Operation ALTER USER failed for ‘root’@‘localhost’
  • 错误现象

在这里插入图片描述

  • 错误原因

    mysql.user表中没有这一条目,使用以下命令查看用户表

    select user, host from mysql.user;
    

    可以看到root对应的host%

  • 解决方法

    修改命令中的localhost%

    alter user 'root'@'%' identified by '123456';
    

    在这里插入图片描述

Unknown system variable …
  • 错误原因

    输入命令中的变量名称不正确,例如validate_password.policy很容易就错误写为validate_password_policy

  • 解决办法

    仔细检查是否存在变量名字输入错误,尤其是存在_.混用的变量名称。

其他

  • alter命令中的符号

    其他文章中有说alter命令报错可能是符号'引起的,建议改为以下指令。但本人未遇到该现象,持保留意见。

    # 可能出错的指令
    alter user 'root'@'%' identified by '123456';
    # 将'root'@'%'改为`root`@`%`
    alter user `root`@`%` identified by '123456';
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值