集中式Mysql DB

时间:2016-11-22 05:17:45

标签: php mysql azure remote-access

我需要集中式数据库的解决方案。

我们在一个托管服务器(Azure Redhat虚拟服务器)中有数据库,我们也需要在其他托管服务器中使用相同的数据库。因此它将是两个服务器的集中式数据库。如果我使用Mysql DB的IP,我也不能在navicat中使用它。

我已尝试在My.cnf文件中使用(bind-address =托管db的服务器的IP地址),但它不允许远程访问。在其他托管服务器或任何mysql客户端中使用它,如navicat / Heidi sql。

此外,我已在azure服务器中添加了端口3306规则以用于入站安全。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

由于Azure VM禁用了ICMP,我们可以使用SSH隧道允许外部访问内部网络资源。

请尝试遵循此post,在托管MySQL服务器的VM中创建SSH隧道:

  • 打开端口3306,远程客户端可以连接到MySQL服务器。运行以下命令以打开TCP端口3306

    iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

    现在让我们通过运行此命令来检查端口3306是否已打开:

    sudo netstat -anltp|grep :3306

  • 为端口3307创建SSH隧道

    sudo ssh -fNg -L 3307:127.0.0.1:3306 azurevmuser@servername

  • 在azure服务器中为入站安全性创建端口3307规则的端点。现在您的数据库主机名是<VM_ip>:3307

如有任何疑问,请随时告诉我。