2016-11-22 92 views
0

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

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

我已经尝试在my.cnf文件中使用(bind-address =服务器所在的数据库的IP地址),但它不允许远程访问。在其他托管服务器中使用它,或者在像navicat/Heidi sql这样的任何mysql客户端中使用它。

此外,我在Azure服务器中为端口安全添加了端口3306规则。

在此先感谢您的帮助。

+0

http://stackoverflow.com/questions/4831553/using-a-central-database-server-for-many-sites-plausible – channasmcs

+0

你好Channasmcs,感谢您的回复,但线程显示更generailised的回复。我需要使用linux命令和配置明智的解决方案。我尝试使用telnet IP 3306但连接超时错误,所以它看起来更多的防火墙问题。 – user1648204

+0

Hi @ user1648204,你有任何更新吗? –

回答

0

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

请尽量按照这个post,创造了一个虚拟机SSH隧道主办了MySQL服务器:

  • 打开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 [email protected]

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

请随时通知我。