我在Windows Azure上有两台运行Ubuntu 12.04LTS的计算机:其中一台运行MySQL数据库,另一台运行需要访问数据库的其他进程。 除了设计(它是真实配置的减少)之外,我想知道是否可以为机器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上,我执行了以下命令:
当我尝试从machineA连接到machineB的数据库时,我得到以下内容:
ERROR 1130 (HY000): Host [123.456.789.012] is not allowed to connect to this MySQL server
如果我用'user'@'123.456.789.012'替换'user'@'machineA.cloudapp.net',它可以直接重新启动。 Azure的虚拟机IP不是静态的,因此我无法绑定用户表中的特定地址。
我该怎么办?
答案 0 :(得分:0)
在当前配置中,如果您通过云服务公开的公共IP地址路由流量,则需要支付数据费用。创建一个虚拟网络,分配您自己的私有IP地址范围,然后运行您自己的内部DNS。如果任一机器重新启动,则应始终重新分配旧IP地址(假设在此期间没有其他任何内容已关闭或打开)。将两台计算机放在一个Cloud Service中。