输入新的 MySQL root 密码时输入错误并忘记关闭引号

输入新的 MySQL root 密码时输入错误并忘记关闭引号

在 MySQL 中为 root 帐户输入新密码时我不小心做了以下事情:

mysqladmin -u root -p password 'somepassword 

您可以看到我错过了第二条引文。而我得到了类似这样的内容。

>

所以我输入了'完成声明,但现在密码不起作用了。

我不是在问如何重置或恢复密码(我知道如何做,但我试图避免重新启动服务)。问题是:如果出现这种输入错误,是否可以在这里输入密码。

我知道我可以使用 init 文件启动 MySQL 服务器并重置密码,但我想知道是否有人知道上面的内容是什么意思。这是新行吗?是否可以手动输入?

答案1

然后只需重置您的 MySQL 密码。这是我在 Ubuntu 12.04 中执行的操作。在其他设置中应该也可以类似地工作。这被认为是一种不安全的重置 MySQL 密码的方法,因为您必须以开放/非基于凭据的模式启动 MySQL 才能执行此操作。但如果您这样做然后正常重新启动 MySQL,您应该没问题。

首先,我停止 MySQL 服务:

sudo service mysql stop

然后我用--skip-grant-tables标志重新启动它:

sudo mysqld --skip-grant-tables &

现在您可以无需密码登录,如下所示:

mysql -u root mysql

然后我运行以下查询来重置密码。请注意,您应该将值更改为YOURNEWPASSWORD您实际想要使用的密码:

UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE user='root'; FLUSH PRIVILEGES; exit;

现在已完成,退出 MySQL 并重新启动守护进程,如下所示:

sudo service mysql restart

如果这种方法不起作用,请使用 akillall来终止所有实例mysqld

killall mysqld

然后像平常一样重新启动 MySQL 服务:

sudo service mysql start

新密码已设置完毕,您就可以开始了。

答案2

瞎猜吧,不过看起来你的密码现在嵌入了换行符。试着\n在密码字符串末尾添加,看看是否有效,或者在密码末尾插入换行符/换行控制字符(取决于终端)。

我也是刚刚才想到的。你能再说一遍吗?例如

mysqladmin -u root -p 'password RET
>' whatever-you-want-to-do RET

显然有点麻烦。没有安装进行测试,否则我会这样做,但值得一试。

注意:我感觉这件事以前曾经发生在我身上。

答案3

如果您确切地知道您输入的内容,那么您可以使用该值登录 - 但您需要在命令行上指定它,而不是通过 ini 文件或密码 pro,pt(其中换行符被解释为输入的结束)。例如:

mysqladmin -u root -p"somepassword\n\n\n" password 'newpassword'

如果您无法重新创建之前输入的值,则需要沿着不同的 ini 文件路线走。

答案4

如果有人来到这里我可以通过运行以下命令犯类似错误后登录到mysql:

mysql -u root -p'somepassword
> '

Linux 自动添加“>”符号

相关内容