当在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,否则我会这样做,但值得一试。
注意:我觉得这件事发生在我以前。