ec2 LAMP REDhat 发行版更改 mysql 密码错误

ec2 LAMP REDhat 发行版更改 mysql 密码错误

我在 ec2 plain linux 上并且希望更改我的 mySQL 密码,
我尝试过:

sudo mysqladmin -u root -p '***old***' password '***new****'

然后它提示我输入密码,
然后我输入,***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***'

我收到与上述相同的错误信息

答案1

  1. 如果使用短选项形式 ( -p),则选项和密码之间不能有空格。此外,如果将密码指定为命令的一部分,则不应提示您输入密码(但是,由于有空格,您的密码实际上会被识别为单独的命令)。(1)

    • 最好让系统提示您输入密码 - 这样可以避免与空格、引号和特殊字符混淆,并且密码不会显示在您的历史记录中。(请注意,省略了旧密码):

      sudo mysqladmin -u root -p 密码'NEW_PASSWORD'
  2. 包含特殊字符的密码必须用单引号括起来(您已经这样做了)。(2)

  3. 或者,您可以使用 mysql 客户端和查询执行整个任务(3)

    mysql -u 根 -p
    输入密码:
    mysql> 更新 mysql.user 设置密码 = PASSWORD ('NEW_PASSWORD') 其中用户 = 'root';
    mysql>刷新权限;

    (请注意,以上操作将更改所有“主机”的密码。您可以添加AND Host='localhost'以将其限制为仅限本地主机。)

    • 或者,在 mysql 提示符下,您可以使用:

      mysql> 设置'root'@'localhost' 的密码 = PASSWORD('NEW_PASSWORD');

如果您无法直接登录 mysql ( mysql -u root -p),则您遇到了其他问题 - 可能与密码中的特殊字符有关(我发现在 中输入包含特殊字符的密码时会出现这种情况mysql_secure_installation)。MySQL 手册介绍了如何在需要时重置 root 密码,这里

相关内容