我在EC2平原Linux并希望改变我的MySQL密码
我试过了:
sudo mysqladmin -u root -p '***old***' password '***new****'
那么它会提示我input密码
然后我进入***old***
但我不断收到错误消息
mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)'
问题:如何更改我目前的密码?
编辑:
当我把这个,在-p和旧密码之间没有空格,我得到一个定义列表
sudo mysqladmin -u root -p'***old***'
当我把这个
sudo mysqladmin -u root -p password '***new***'
我得到了与上面相同的错误信息
如果使用短选项表单( -p
),则选项和密码之间不能有空格。 此外,如果您将密码指定为命令的一部分,则不会提示您input该密码(但是,由于空间的原因,您的密码实际上被识别为单独的命令)。 (1)
最好让系统提示你input密码 – 这样可以避免与空格,引号和特殊字符混淆,并且密码不会显示在你的历史logging中。 (请注意,旧密码被省略):
sudo mysqladmin -u root -p密码“NEW_PASSWORD”
包含特殊字符的密码必须用单引号括起来(您已经完成)。 (2)
或者,您可以使用mysql客户端和查询(3)来执行整个任务:
mysql -u root -p input密码: mysql> UPDATE mysql.user SET Password = PASSWORD('NEW_PASSWORD')WHERE User ='root'; mysql> FLUSH PRIVILEGES;
(注意上面的内容会改变所有'Hosts'的密码,你可以添加AND Host='localhost'
来限制它只是localhost。)
另外,在mysql提示符下,你可以使用:
mysql>为root设置密码@'localhost'=密码('NEW_PASSWORD');
如果你不能直接login到mysql( mysql -u root -p
),那么你有一个不同的问题 – 可能与你的密码中的特殊字符有关(当在mysql_secure_installation
input特殊字符的密码时,我发现这是真的)。 MySQL手册介绍了如何在需要时重置根密码。