【发布时间】:2013-10-27 11:48:39
【问题描述】:
我在 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 的公共虚拟 IP 地址。
在 machineB 上我执行了以下命令:
- 连接 MySQL 服务器
- 使用mysql
- 将 . 上的使用权授予由“密码”标识的“用户”@“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 不是静态的,所以我无法在用户表中绑定特定地址。
我能做什么?
【问题讨论】:
-
我想知道你是如何解决这个问题的。我也面临类似的问题
-
我很抱歉,但真诚地一年后我不记得我是如何解决的,因为我现在也在另一家公司工作。如果我没记错的话,我在我的天蓝色帐户中创建了一个虚拟网络,并分配了固定的 VNET IP,这些 IP 在机器重新启动时不会改变。之后,我将该信息放入 MySQL 用户表中。对不起,我不能帮助你更多。请看这个链接:michaelwasham.com/windows-azure-powershell-reference-guide/…
标签: mysql azure dns remote-access