0

ホストアドレスをIPアドレス203.199.209。**として使用してデータベースに接続しようとしましたが、ホストアドレスをローカルホストとして使用してデータベースに接続しようとすると、正常に接続されました。この問題を解決するにはどうすればよいですか?

ここに画像の説明を入力してください

4

2 に答える 2

5

MySQLは、接続元のホストに基づいてアクセスを許可します。

このコマンドを次のように実行しますroot

SELECT user, host FROM mysql.user;

これらは、サーバーに存在するユーザーです。host列に注意してください。

つまり、ユーザーはユーザー名(user接続ポイント()の両方として定義されますhost。としてサーバーにアクセスするとlocalhost、実際にはとしてログインしsome_user@localhostます。一方、IPアドレスを介してサーバーにアクセスする場合、実際にはとしてログインしますsome_user@your.ip.address.here。後者はあなたのサーバーには存在しないと思います。

some_user@your.ip.address.hereまたはなどの新しいユーザーを作成することもできますsome_user@%(パーセント記号はワイルドカードです。ここでは、「任意のホスト」を意味します)。

CREATE USER 'some_user'@'your.ip.address.here' IDENTIFIED BY 'your_password';
GRANT ALL ON your_database.* to 'some_user'@'your.ip.address.here';

さらに詳しく知りたい場合は、MySQLアクセス制御の詳細についてはこのマニュアルページを、構文についてはこのページを参照してください。CREATE USER

[編集]

明らかに、他の人が示唆しているように、最初にサーバーがこのIPアドレス(203.199.209。**)をリッスンしていることを確認する必要があります。ただし、これがまだ当てはまらない場合は、次のエラーが発生するはずです。

エラー2003(HY000):「203.199.209。**」でMySQLサーバーに接続できません(111)

発生しているエラーは、許可の問題を明確に示しています。

于 2012-12-19T13:34:53.050 に答える
1

mysql-5.7.15-winx64(Windowsバージョン)の場合、「root」ユーザーとしてログインし、MYSQLで次のクエリを実行します。

CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass';

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

CREATE USER 'user'@'%' IDENTIFIED BY 'pass';

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

次に、MYSQLDBを再起動します。

このバージョンのMYSQLDBでは、「bin」フォルダと同じ場所にある「my-default.ini」を変更する必要はありません。

于 2017-04-19T07:09:42.393 に答える