読み取り中ですO “Relly 「MySQLの学習」とは、次のようにするだけでMySQLでユーザーを作成できることを示しています。
mysql> GRANT ALL ON *.* TO "jill"@"%.invyhome.com" IDENTIFIED BY "the_password"; Query OK, 0 rows affected (0.01 sec)
しかし、私がやろうとすると:
-> grant select on testgrounds.personas to ""@"localhost"; --> Error Code: 1133. Can"t find any matching row in the user table
しかし、パスワードを使用すると成功します:
->grant select on testgrounds.personas to ""@"localhost" identified by "pass"; --> 0 row(s) affected
次の権限を復元する必要がありました私は実験していて、それらを台無しにしたので、ユーザーrootなので、それを行う前に、実際に本のステートメントを使用できると思います(100%覚えていません)
-> select current_user; --> "root@localhost" -> show grants; --> "GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"localhost\" IDENTIFIED BY PASSWORD \"*4ACFE3202A5FF5CF467898FC58AAB1D615029441\" WITH GRANT OPTION" --> "GRANT ALL PRIVILEGES ON `testgrounds`.* TO \"root\"@\"localhost\" WITH GRANT OPTION" --> "GRANT PROXY ON \"\"@\"\" TO \"root\"@\"localhost\" WITH GRANT OPTION"
MySQLのインストールまたはセットアップに問題がありますか?
回答
これはMySQLの問題ではありませんインストールまたはセットアップ。
各アカウント名は、ホスト名が指定されていない場合でも、「user_name」@「host_name」のようなユーザー名とホスト名の両方で構成されます。 MySQLリファレンスマニュアル:
MySQLアカウント名は、ユーザー名とホスト名で構成されます。これにより、異なるホストから接続できる同じ名前のユーザーのアカウントを作成できます。
これにより、MySQLは、どちらに応じて異なるレベルのアクセス許可を付与することもできます。接続に使用するホスト。
MySQLがホスト部分を認識しないアカウントの許可を更新すると、このアカウントを識別するためのパスワードがない限り、エラーコード1133が返されます。
また、 MySQLでは、アカウント名をそのユーザー名でのみ指定できますが、この場合は「user_name」@「%」として扱われます。