0

Ubuntu 12.04LTS を実行している Windows Azure 上に 2 つのマシンがあります。そのうちの 1 つは MySQL データベースを実行し、もう 1 つはデータベースにアクセスする必要がある他のプロセスを実行します。設計は別として (これは実際の構成の縮小です)、マシン A にマシン B の MySQL 5.5 サーバーに接続する権限を割り当て、mysql.user テーブルに DNS 名を割り当てることができるかどうかを知りたいです。

簡単な例:

マシンA

Runs: application code, webserver
DNS: machineA.cloudapp.net
PUBLIC VIRTUAL IP ADDRESS: 123.456.789.012
INTERNAL IP ADDRESS: 1.2.3.4

マシンB

Runs: MySQL server 5.5
DNS: machineB.cloudapp.net
PUBLIC VIRTUAL IP ADDRESS: 098.765.432.109
INTERNAL IP ADDRESS: 4.3.2.1

各マシンから他のマシンにpingを実行することはできませんが、

user@machineA:~$ ping machineB.cloudapp.net

machineB の PUBLIC VIRTUAL IP ADDRESS を正しく解決します。

machineB で次のコマンドを実行しました。

  • MySQL サーバーに接続する
  • mysql を使用する
  • の使用を許可します「パスワード」で識別される「user」@「machineA.cloudapp.net」へ。
  • db_name.* に対するすべての権限を 'user'@'machineA.cloudapp.net' に付与します。
  • フラッシュ権限

machineA から machineB のデータベースに接続しようとすると、次のようになります。

ERROR 1130 (HY000): Host [123.456.789.012] is not allowed to connect to this MySQL server

「user」@「machineA.cloudapp.net」を「user」@「123.456.789.012」に置き換えると、再起動するまで機能します。Azure の仮想マシンの IP は静的ではないため、ユーザー テーブル内の特定のアドレスをバインドできません。

私に何ができる?

4

1 に答える 1