如何重置丢失的mysql根密码

如何重置丢失的mysql根密码,mysql,passwords,digital-ocean,Mysql,Passwords,Digital Ocean,我对如何重置mySQL根密码做了一些研究,但当我尝试运行此命令时: sudo stop mysql 并输出:停止未知实例 然后我试着跑: # mysqld_safe --skip-grant-tables & 我得到:mysqld进程已经存在 更新: 尝试了建议的其他方法,但遇到以下错误: 使用以下命令 sudo /etc/init.d/mysql stop 或 我对如何重置mysql根密码没有太大的了解,但根据问题和错误一个mysqld进程已经存在这意味着其他实例或进程可能已经启

我对如何重置mySQL根密码做了一些研究,但当我尝试运行此命令时:

sudo stop mysql
并输出:
停止未知实例

然后我试着跑:

# mysqld_safe --skip-grant-tables &
我得到:
mysqld进程已经存在

更新:

尝试了建议的其他方法,但遇到以下错误:
使用以下命令

sudo /etc/init.d/mysql stop


我对如何重置mysql根密码没有太大的了解,但根据问题和错误
一个mysqld进程已经存在
这意味着其他实例或进程可能已经启动了停止的服务

根据用于停止My Sql服务的命令是

/etc/init.d/mysql stop

因此,请尝试该命令,并尝试按照步骤操作。如果再次出现相同的错误,则在停止My Sql服务后,只需运行该命令即可查看哪个进程仍在运行
ps-ef | grep'mysql'

输出看起来像

mysql 2370 1 0 2004年12月10日?00:00:00/bin/sh/usr/bin/mysqld_safe--basedir=/usr
mysql 250423700 2004年12月0日?00:25:22/usr/libexec/mysqld--basedir=/usr--datadir=/var/lib/mysql--plugin dir=/usr/lib64/mysql/plugin--log error=/var/log/mysqld.log--pid file=/var/lib/mysql/mysqld.pid--socket=/var/lib/mysql
/mysql.sock root 38107 22476 0 08:54 pts/1 00:00:00 grep--color=auto-mysql


并尝试使用
kill-9pid
手动终止进程改进您的研究:要重置根密码,我建议您不要使用
--跳过授权表。这个建议很常见,但大多是毫无意义和危险的;它需要两次重新启动服务器。请看我的帖子

一个更简单的解决方案是使用
init file
配置变量,并将其指向一个文件,在该文件中,您可以
为'root'@'localhost'=PASSWORD('123456')
,如上所述

还有一些黑客实际上允许您在不停机的情况下更改密码,这些黑客可以在本文的评论中找到:


关于您无法启动MySQL的事实,请遵循@drew010注释中的类似建议,使用
killall-TERM mysqld
killall-9 mysqld
,如果前者不起作用。您还可以查看错误日志(通常是
/var/log/mysqld.log
,但在
my.cnf
设置文件中配置的除外)。

尝试
sudo kill-3 mysqld
,然后再次尝试启动,看看它是否有效。无论下面的回答如何,您的
停止执行似乎不正确,应该是
sudo服务mysql-stop
。但是,请看一下恢复根密码的不同方法。因此,尝试另一种方法仍然会遇到问题。图片发布在更新到上面的帖子。
sudo service mysql stop