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 は静的ではないため、ユーザー テーブル内の特定のアドレスをバインドできません。
私に何ができる?