CentOS上怎么简单查到数据库密码,快速搞定那些忘记的登录信息
- 问答
- 2026-01-07 19:14:48
- 16
(引用来源:基于Linux系统管理常识、数据库服务默认配置及常见故障排查思路)
在CentOS服务器上,万一忘记了数据库(比如最常见的MySQL或MariaDB)的登录密码,这事儿说大不大,说小也不小,你别慌,按照下面的步骤一步步来,基本上都能快速搞定,核心思路就一个:暂时绕过权限验证,进去之后再改密码。
你得有操作系统的root权限,没有这个最高权限,后面的一切都免谈,确保你是以root用户登录,或者能用sudo命令提权。
第一步,先把数据库服务给停掉,因为运行中的数据库会检查密码,我们进不去,停服务的方法很简单,用systemctl命令。(引用来源:CentOS系统服务管理标准命令)打开终端,输入:
systemctl stop mysqld 或者 systemctl stop mariadb
具体是mysqld还是mariadb,取决于你当初安装的是哪个,你不太确定的话,两个命令都试一下,总有一个会提示找不到服务,另一个则会正常停止,服务停止成功后,不会有太多提示,命令行光标会跳到下一行等待新命令。
第二步,也是最关键的一步,就是启动一个跳过权限检查的特殊模式,这样启动数据库后,它不会要求你输入密码,就能直接以最高权限连上去。(引用来源:MySQL/MariaDB官方文档中关于--skip-grant-tables参数的说明)输入下面的命令:
mysqld_safe --skip-grant-tables --skip-networking &
这个命令有点长,解释一下。mysqld_safe是启动数据库的一个安全脚本。--skip-grant-tables就是那个“万能钥匙”,告诉数据库别管什么用户名密码了,另外一个参数--skip-networking也很重要,它让数据库只允许本机连接,防止这个时候有别人从网络连过来钻空子,这样更安全,最后那个&符号是让这个命令在后台运行,这样你还能继续在同一个终端里输入其他命令。
执行这个命令后,会输出一些信息,不用管,只要没报错崩掉,就应该是启动成功了。
第三步,现在数据库已经在“不设防”状态下运行了,我们直接连接进去,打开一个新的终端窗口,或者就在当前终端(如果上一步没加&,你就得开新终端),输入:
mysql -u root
注意,这次它不会问你要密码,直接就能看到提示符变成了mysql>,这说明你已经成功以root身份登录了数据库系统。
第四步,进去之后就要修改密码了,但先得告诉数据库系统,我们要更新权限表。(引用来源:MySQL 5.7.6及以上版本及MariaDB 10.4.3及以上版本密码重置流程变化)因为新版本的密码管理方式变了,所以步骤稍有不同,你先输入下面这个命令,让系统重新加载权限设置:

FLUSH PRIVILEGES;
注意,SQL命令后面要跟分号,执行成功后,再开始改密码。
如果是MySQL 5.7.6及以上版本或者MariaDB 10.4.3及以上版本,改root密码的命令是:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
把你的新密码换成你想设的复杂点的密码。
如果是比较老的版本(比如CentOS 7默认可能装的旧版),可能要用这个命令:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');

密码设置成功后,系统会提示Query OK。
第五步,密码改好了,就该退出来,让数据库恢复正常运行,在mysql>提示符下输入:
exit;
这样就回到了普通的命令行。
第六步,现在要把那个“不设防”的数据库进程关掉,重新正常启动,找到刚才在后台运行的mysqld_safe进程的PID(进程号),你可以用ps aux | grep mysqld命令找一下,然后使用kill命令结束它,更粗暴直接的方法是,直接用killall mysqld_safe和killall mysqld,确保相关进程都结束。(引用来源:Linux进程管理基本操作)
再次使用systemctl正常启动数据库服务:
systemctl start mysqld 或 systemctl start mariadb
你就可以用新设置的密码,通过mysql -u root -p命令,输入新密码正常登录了。
整个流程走下来,其实就是利用了一个数据库自带的后门参数,临时取消了密码验证,操作的时候细心点,尤其是改密码的那条SQL语句别写错,基本上几分钟就能解决忘记密码的问题,完事儿后记得把新密码记在安全的地方,免得下次又忘了。
本文由太叔访天于2026-01-07发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/76369.html
