定义用户时,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