mariadb数据库修改密码

来源:csdn博客 分类: 文章浏览史 发布时间:2020-12-24 16:28:07 最后更新:2020-12-24 浏览:137
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2020-12-24 16:28:07

最近把项目部署到云服务器上,为了方便访问,关闭了服务器防火墙,开启了数据库远程访问权限,但是第二天再去远程访问数据库,发现连接不上数据库,登录服务器查看,也登录不上数据库,一直提示密码错误,于是猜测数据库收到了攻击,准备跳过密码进入数据库查看一下。
先关闭mariadb

systemctl stop mariadb

好像关不掉,只能杀进程了,
查看mariadb进程

ps -ef | grep mariadb

在这里插入图片描述
PID(process ID):是程序被操作系统加载到内存成为进程后动态分配的资源。

PPID(parent process ID):PPID是程序的父进程号。

关闭mariadb进程

kill -9 5154

确认关闭
在这里插入图片描述
跳过密码进入

mysqld_safe --skip-grant-tables &

在这里插入图片描述
在这里直接回车,然后就可以跳过命令直接进入数据库了

mysql -u root

在这里插入图片描述
进入数据库之后,选择mysql库

USE mysql

修改user表中的密码(修改为root)

UPDATE user SET password=password('root') WHERE user='root';

执行结束之后,查询user表:

SELECT password,user,host FROM user WHERE user='root';

在这里插入图片描述
发现表中的密码是经过加密的,用户进行登录验证的时候应该会用同样的加密算法进行加密然后跟数据库中密码比对,这就意味着普通改表语句是没法正常修改密码的,比如如下语句:

UPDATE user SET password='root' WHERE user='root';

执行完以上错误语句之后,再查询数据库,发现表中的密码并不是加密之后的,而直接显示修改后的密码,这样就会造成登录时输入密码无法匹配。
在这里插入图片描述
修改完密码之后,进入一个库中的表查看发现:
在这里插入图片描述
果然如此,还好数据库中的数据都是学习用的,不重要。

php技术微信