web-dev-qa-db-ja.com

エラー1045(28000):ユーザーのアクセスが拒否されました(パスワードを使用:YES)

サーバー上に単純なmysqlデータベースを配置し、それに接続する別のサーバー上に別のデータベースを配置しようとしています。

私は次のことをしました:

  1. インストールされたmysql-server
  2. データベースを作成しました
  3. でユーザーを作成しました:

    CREATE USER admin @ 'localhost' IDENTIFIED BY'admin ';

  4. このユーザーに次の権限が与えられます:

    ConfWeb。*のすべての特権をadmin @ ''に付与します。

  5. バインドアドレスを開きました

別のサーバーからコマンドmysql -u admin -p -h <address>を起動すると、何度も何度も通知されます。

ERROR 1045 (28000): Access denied for user 'admin'@'X.X.X.X' (using password: YES)

この時点でどうしたらいいのか本当にわかりません。私はすべてを試したと思います。 GRANT行の最後にGRANT OPTIONを入れてみました。多くの異なるアドレスを許可しようとしましたが、何も機能しませんでした。

2
Licia

MySQLでは、ユーザーはuserHostの両方で識別されます。

このユーザー:

 admin@localhost

notと同じユーザーです

 admin@'10.242.167.235'

1つのオプションとして、接続を許可するためにこれを行うことができます。

  GRANT USAGE ON *.* TO admin@'10.242.167.235' IDENTIFIED BY 'mysecret' ;
  GRANT ALL ON confWeb.* TO admin@'10.242.167.235' ;

「ワイルドカード」、ローカルホストの特別な意味、ホスト名の代わりにIPアドレスを使用するなど、MySQLアクセス特権システムの詳細については。

http://dev.mysql.com/doc/refman/5.7/en/privilege-system.html

6
spencer7593

次の手順を使用します:-

  CREATE USER 'user name'@'IP or % or localhost' IDENTIFIED BY 'password';

  GRANT all privileges ON *.* TO 'user name'@'IP or % or localhost' IDENTIFIED BY 'password' ;
  flush privileges;

ここでは「IP」の代わりに;サーバーに接続するリモートサーバーIPを使用します。世界中の任意のplcaeの使用データベースに「%」を使用することもできます。

さて、Grantオプションで; 「すべての権限」の代わりに、select、alter、updateなどのように個別にアクセスを許可できます。

0
Anurag Singh

理由はよくわかりませんが、どうやら、with grant optionを使用して、最初にデータベースにアクセスし、次にそのテーブルにアクセスしたときに機能しました。入力したコマンドのリストは次のとおりです。

mysql> create user 'admin'@'localhost' identified by 'admin';
mysql> grant all privileges on confWeb to 'admin'@'10.69.101.%' identified by 'admin' with grant option;
mysql> grant all privileges on confWeb.* to 'admin'@'10.69.101.%' identified by 'admin' with grant option;
mysql> flush privileges;

繰り返しになりますが、なぜそれが以前に機能しなかったのか本当にわかりません。私が見た答えは、私が見たすべてのドキュメントのように見えますが、私の問題は別の場所にあったようです。

0
Licia