Can';t使用我刚刚设置的用户详细信息从bash连接到MySQL数据库

Can';t使用我刚刚设置的用户详细信息从bash连接到MySQL数据库,mysql,macos,Mysql,Macos,我刚刚用密码创建了一个新的MySQL用户,并授予他们在数据库上的所有权限。现在我想用刚刚设置的密码连接到该数据库,但我无法: mysql> create user 'reviews' identified by 'reviews'; Query OK, 0 rows affected (0.00 sec) mysql> grant all on reviews.* to 'reviews'@'localhost'; Query OK, 0 rows affected (0.00 se

我刚刚用密码创建了一个新的MySQL用户,并授予他们在数据库上的所有权限。现在我想用刚刚设置的密码连接到该数据库,但我无法:

mysql> create user 'reviews' identified by 'reviews';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on reviews.* to 'reviews'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit;
Bye
$ mysql -U reviews -u reviews -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'reviews'@'localhost' (using password: YES)

我做错了什么?我正在BashShell中开发MacOSLion,MySQL的10.6版

定义用户时,CREATE USER语句需要主机部分。否则,它将使用默认的“%”,并且由于GRANT语句包含@“localhost”,因此您将得到一个有密码的用户,而另一个没有密码

mysql> CREATE USER 'reviews' IDENTIFIED BY 'reviews';
mysql> GRANT ALL ON reviews.* TO 'reviews'@'localhost';
结果:

+---------+-------------------------------------------+-----------+
| user    | password                                  | host      |
+---------+-------------------------------------------+-----------+
| reviews | *03E3A1FBF4E68AB8F641C43AF6E952AFD967AFEA | %         |
| reviews |                                           | localhost |
+---------+-------------------------------------------+-----------+
使用以下方法获得您想要的:

mysql> CREATE USER 'reviews'@'localhost' IDENTIFIED BY 'reviews';
mysql> GRANT ALL ON reviews.* TO 'reviews'@'localhost';
请注意,最好在连接时指定数据库,否则在连接后需要更改默认数据库:

shell> mysql -u reviews -p -D reviews

您应该尝试
创建用户“评论”@'localhost'
-U
选项与登录无关,它是
--安全更新
的别名,也称为
--i-am-a-dummy
模式,可防止任何不使用密钥的更新/删除查询
-u
(小写)是用户名字段。谢谢。出于某种原因,我不得不在允许我创建用户之前
删除用户“评论”@“本地主机”
,然后它就开始工作了。我添加了一些详细信息,说明了在不指定“用户”@“主机”时创建两个用户的错误。