首先让我提一下,我已经看了很多建议的问题,但没有找到相关的答案。这就是我正在做的。

我连接到Amazon EC2实例。我可以用这个命令登录MySQL根目录:

mysql -u root -p

然后我用host %创建了一个新的用户帐单

CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';

授予用户bill的所有权限:

grant all privileges on *.* to 'bill'@'%' with grant option;

然后我退出root用户,尝试用bill登录:

mysql -u bill -p

输入正确的密码并得到以下错误:

错误1045(28000):用户“账单”@“localhost”(使用密码:YES)的访问被拒绝


当前回答

不确定其他人是否会发现这有帮助,但我遇到了同样的错误,并搜索任何匿名用户…但实际上并没有。问题最终是用户帐户被设置为“要求SSL”-这是我在PHPMyAdmin通过进入用户帐户并单击编辑用户的权限发现的。只要我取消了这个选项,一切都按预期工作!

其他回答

在我的情况下,服务器托管我的代码是发送'@blablabla.amazonaws.com'在用户名的ed时,试图登录MySQL。所以我不得不将%.amazonws.com添加到我的主机的用户配置(dreamhost)中,它通过了

好吧,我不确定,但可能是mysql安装目录中的my.cnf文件是罪魁祸首。 注释掉这一行,问题就可以解决了。

bind-address = 127.0.0.1

当你的密码包含一些特殊字符,如@,$等,也会发生这种情况。 为了避免这种情况,你可以把password用单引号括起来:

$ mysql -usomeuser -p's0mep@$$w0Rd'

或者在输入时不用密码。请留空,然后在终端要求时输入。这是推荐的方法。

$ mysql -usomeuser -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 191
Server version: 5.5.46-0ubuntu0.14.04.2 (Ubuntu)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

操作系统:windows

我的错误信息是:

MySQL ERROR 1045(28000):用户'root'@'localhost'(使用密码:YES)被拒绝访问

我的原因是,我没有打开cmd与管理员权限。

所以我的解决方案是作为管理员打开cmd,然后它就工作了。

在我的案例中,一个相关的问题是试图连接使用:

mysql -u mike -p mypass

空格显然是允许在-u #uname#之间,但不允许在-p和#password#之间

因此需要:

mysql -u mike -pmypass

否则,在空格之间-p mpass mysql以' mpass '作为数据库名