サーバー上に単純なmysqlデータベースを配置し、それに接続する別のサーバー上に別のデータベースを配置しようとしています。
私は次のことをしました:
でユーザーを作成しました:
CREATE USER admin @ 'localhost' IDENTIFIED BY'admin ';
このユーザーに次の権限が与えられます:
ConfWeb。*のすべての特権をadmin @ ''に付与します。
バインドアドレスを開きました
別のサーバーからコマンドmysql -u admin -p -h <address>
を起動すると、何度も何度も通知されます。
ERROR 1045 (28000): Access denied for user 'admin'@'X.X.X.X' (using password: YES)
この時点でどうしたらいいのか本当にわかりません。私はすべてを試したと思います。 GRANT行の最後にGRANT OPTION
を入れてみました。多くの異なるアドレスを許可しようとしましたが、何も機能しませんでした。
MySQLでは、ユーザーはuserとHostの両方で識別されます。
このユーザー:
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
次の手順を使用します:-
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などのように個別にアクセスを許可できます。
理由はよくわかりませんが、どうやら、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;
繰り返しになりますが、なぜそれが以前に機能しなかったのか本当にわかりません。私が見た答えは、私が見たすべてのドキュメントのように見えますが、私の問題は別の場所にあったようです。