Mysqladmin错误

当在mysql中为root帐户input一个新的密码时,我不小心做到了这一点:

mysqladmin -u root -p password 'somepassword 

在哪里可以看到我错过了第二个报价。 我有这样的事情

  > 

所以我input了“'”来完成声明

现在密码不起作用。 我知道我可以用init文件启动mysql服务器,并重置密码,但我想知道是否有人知道上面的翻译。 这是一个新的线?

编辑
我不问如何重置或恢复密码(我知道如何做,但我试图避免重新启动服务)。 问题是:如果发生这个错字,可以input或不input密码。

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

首先,我停止MySQL服务:

 sudo service mysql stop 

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

 sudo mysqld --skip-grant-tables & 

现在你可以不用像这样密码login:

 mysql -u root mysql 

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

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

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

 sudo service mysql restart 

如果以某种方式不起作用,请使用killall杀死mysqld所有实例:

 killall mysqld 

然后像平常一样再次启动MySQL服务:

 sudo service mysql start 

新密码应该设置,你很好去。

如果您确切地知道您键入的内容,那么您可以使用该值login – 但是您需要在命令行上指定它,而不是通过ini文件或密码pro,pt(其中新行被解释为input的结尾)。

例如mysqladmin -u root -p“somepassword \ n \ n \ n”密码“newpassword”

如果你不能重新创build你之前input的值,那么你需要沿着不同的ini文件path。

在这里黑暗中射击,但它看起来像你的密码现在已经embedded换行符。 尝试将\n添加到密码string的末尾,看看它是否有效,或者在密码末尾插入换行符/换行符控制字符(取决于terminal)。

这也发生在我身上。 你能重复一遍吗? 例如

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

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

注意:我觉得这件事发生在我以前。