我需要集中式数据库的解决方案。
我们在一个托管服务器(Azure Redhat虚拟服务器)中有数据库,我们也需要在其他托管服务器中使用相同的数据库。因此它将是两个服务器的集中式数据库。如果我使用Mysql DB的IP,我也不能在navicat中使用它。
我已尝试在My.cnf文件中使用(bind-address =托管db的服务器的IP地址),但它不允许远程访问。在其他托管服务器或任何mysql客户端中使用它,如navicat / Heidi sql。
此外,我已在azure服务器中添加了端口3306规则以用于入站安全。
提前感谢您的帮助。
答案 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
如有任何疑问,请随时告诉我。