Linux下修改MySQL的用户(root)的密码以及密码策略长度设置

1 拥有旧MySQL的root密码

方法一

在mysql系统外,使用mysqladmin

# mysqladmin -u root -p password "123456"
Enter password: 【输入原来的密码】

mysql> mysqladmin -u用户名 -p旧密码 password 新密码;

-- 例子:

mysql> mysqladmin -uroot -p123456 password 123;

方法二

通过登录mysql系统,

# mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;

set方式;设置永不过期;

mysql> set password=password('123456');  # set设置
mysql> alter user 'root'@'localhost' password expire never;
mysql> flush privileges;
mysql> exit;    

mysql> set password for 用户名@localhost = password('新密码');

-- 例子:

mysql> set password for root@localhost = password('123456');

update 方式;

mysql> update user set password=password("123456") where user='root';    # update更新
mysql> flush privileges;
mysql> exit;      

2 忘记myql的root密码

首先,你必须要有操作系统的root权限了。
类似于安全模式登录系统,

2.1 关闭当前运行的mysqld服务程序

service  mysqld  stop(要先将mysqld添加为系统服务)

2.2 mysqld_safe以安全模式启动重置密码

使用mysqld_safe脚本以安全模式(不加载授权表)启动mysqld 服务

mysqld_safe --skip-grant-tables &

或者
mysqld_safe --defaults-file=/etc/my.cnf  --skip-grant-tables &

&,表示在后台运行,不在后台运行的话,就再打开一个终端。

使用空密码的root用户登录数据库,重新设置ROOT用户的密码

# mysql

#5.6及以前
mysql> UPDATE mysql.user SET password=password('123456') WHERE user='root';

# 5.7;mysql.user表authentication_string字段替换了password字段;
mysql> UPDATE mysql.user SET authentication_string=password('123456') WHERE user='root';   

mysql> flush privileges;
mysql> exit; 

本来mysql是不分大小写的,但是这个是修改的mysql中的mysql数据库的具体的值,要注意到。

也可以将“skip-grant-tables”加入/etc/my.cnf文件里面,再重启mysql服务

2.3 通过修改配置文件重置密码

修改配置文件(/etc/my.cnf),在 [mysqld] 小节下添加一行:skip-grant-tables=1,让 mysqld 启动时不对密码进行验证

vim /etc/my.cnf
添加:
skip-grant-tables=1

重启mysql服务生效,修改方式同上;
修改完成后,在 [mysqld] 小节下去掉:skip-grant-tables=1

2.4 mysql 5.7 通过 alter 命令修改密码

mysql5.7默认生成随机密码,在初始化mysql配置时产生;
mysql 5.7:通过临时密码登陆mysql服务,必须用alter命令修改密码

mysql> alter user 'root'@'localhost' identified by '123456';
mysql> flush privileges; 

3 设置简单的密码总是会有下面的提示:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

重新登陆 MySQL 准备设置简单密码:
3.1 查看 mysql 初始的密码策略。

SHOW VARIABLES LIKE 'validate_password%'; 

3.2 设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 。

set global validate_password_policy=LOW;

3.3 当前密码长度为 8 ,为了方便,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 。

set global validate_password_length=6;

3.4 现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,输入下面的修改语句 :

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges;

3.5 可以看到修改成功,表示密码策略修改成功了;重新登录 MySQL ,验证新密码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值