18

リモート IP アドレスを使用してローカル mysql データベースに接続しようとすると、アクセスが拒否されます。外部マシンから同じデータベースに接続しようとすると、問題なく動作します。localhost を使用してローカル データベースに接続すると、同様に完全に機能します。たとえば、データベース サーバーの IP が 1.2.3.4 の場合、次の結果が得られます。

# From the db server
mysql -u username -h localhost -p #works perfectly
mysql -u username -h 127.0.0.1 -p #works perfectly
mysql -u username -h 1.2.3.4 -p #Access denied

# From any other machine
mysql -u username -h 1.2.3.4 -p #works perfectly

リモート IP アドレスを使用してデータベースへのローカル アクセスを許可するにはどうすればよいですか? データベース サーバーの OS は Fedora 15 で、MySQL のバージョンは 5.5.23 です。

4

3 に答える 3

8

私は自分の問題の解決策を自分で見つけましたが、なぜうまくいかなかったのかまだよくわかりません:

ホスト % と localhost でそのユーザーに権限を付与しました:

# Before
+-----------------+------------+
| Host            | User       |
+-----------------+------------+
| %               | username   |
| localhost       | username   |
+-----------------+------------+

これらの設定により、上に示した結果が得られました。ホストでそのユーザーに権限を付与すると、突然機能しました。

# After
+-----------------+------------+
| Host            | User       |
+-----------------+------------+
| %               | username   |
| localhost       | username   |
| <myIpAddress>   | username   |
+-----------------+------------+

どうやら % はリモート接続では機能しますが、ローカル接続では機能しません。

于 2012-10-23T15:00:51.090 に答える
-4

この特定の問題は、ホスト名の解決が原因である可能性があります。

my.cnf特定のケースでは、構成ファイルからこの変数を削除することで解決しました。

スキップ名解決

もちろん、シャープ記号を配置して変数にコメントするか、バックアップしたことを確認し#てから変数を削除してください。my.cnf

于 2013-09-05T16:01:35.993 に答える