centos的mysql修改root密码_CentOS环境中MySQL修改root密码方法

环境相关:

OS:CentOS release 6.9

IP:192.168.1.10

MySQL:MariaDB-10.1.30

1. 修改前的确认

修改root密码是需要重启mysql库,确认生产真的可以重启mysql库;

确认生产是否有直接使用root用户连接到库的使用情况,如果有则要做相应连带变更;

修改密码前请停掉连接到库的应用,也就是停掉该库相关的所有生产线。

2. 停库修改密码

ps -ef|grep mysql|grep -v grep

# 找到对应的mysql服务器守护进程,查看是否有其他mysql服务守护进行存在

ps -ef|grep mysql|grep -v grep|xargs kill -9

# 杀掉root启动库的命令进程和库的守护进程,否则库会自动再次启动

# 杀掉进程,停库,杀掉进程之前请确保连接到库的应用全部停掉!!!

mysqld_safe --user=mariadb --skip-grant-tables &

# 忽略授权表启动库,此时如果使用密码则无法登陆库

# 连接到库的应用如果没有停掉,此时是无法成功连接到库的

mysql

use mysql;

select Host,User,Password from user where user='root';

exit;

# 进到mysql库中,查询当前的root密码的密值,保存密值用以回滚

# 比如我当前密码是vincent,密值是'*CDA83EBFF468E905FF304FE0D3D9F4D665C6579D'

mysql

use mysql;

update user set password=password('test') where user='root';

exit;

# 进到mysql库中,设置root密码

mysqladmin shutdown

mysqld_safe --user=mariadb &

# 重启库,登录测试

mysql -uroot -ptest -Dmysql

exit;

# 登录成功

3. 操作回滚

当你修改完root密码后,发现很多问题,比如有未知的应用以原来的root密码连接到了库(操蛋的历史遗留问题),需要回滚。

mysql -uroot -ptest -Dmysql

update user set password='*CDA83EBFF468E905FF304FE0D3D9F4D665C6579D' where user='root';

flush privileges;

exit;

# 使用上一步记录的root密码修改前的密值进行回滚

mysql -uroot -pvincent -Dmysql

exit;

# 回滚完成

4. 相关知识点

可以直接使用密码的密值设置密码,目前没有找到可以直接将密值逆转成密码明文的方法,查看密码的密值可以使用password函数:

mysql -uroot -pvincent

select password('vincent'),password('test');

但是如果你知道了密值,就可以神不知鬼不晓的以root权限修改某个用户的密码,使用之,然后还原。

该情况多用于某个用户的密码遗忘,重置密码,相同的情况还出现在oracle数据库中。

时间: 2018-01-04

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值