1

パスワードを使用して新しい 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)

私は何を間違っていますか?私は、MySQL のバージョン 10.6 の bash シェルで MacOS Lion に取り組んでいます。

4

1 に答える 1

0

ユーザーを定義するとき、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
于 2012-06-27T11:18:30.207 に答える