如何在azure

时间:2016-11-07 12:54:22

标签: mysql linux azure mysql-workbench azure-virtual-machine

我搜索了很多但却无法解决这个问题。 我能够访问在不同的Windows机器上运行的MySQL服务器。我采取的步骤是

  1. 将my.ini文件绑定地址更改为0.0.0.0
  2. 通过GRANT ALL PRIVILEGES ON DATABASE.* TO user@'%' IDENTIFIED BY 'password';
  3. 创建用户并授予权限
  4. 从命令行到Windows MySQL服务器mysql -h windows server ip -u user -p
  5. 它工作正常,从MySQL工作台我可以从我的机器连接到Windows MySQL服务器。但是在Linux虚拟机中我做了同样的事情

    1. 更改my.cnf文件并将绑定地址更改为0.0.0.0。
    2. 通过GRANT ALL PRIVILEGES ON DATABASE.* TO user@'%' IDENTIFIED BY 'password';
    3. 创建用户并授予权限
    4. 从命令行到LINUX MySQL服务器mysql -h linux server ip -u user -p

      但为此我在提供密码 ERROR 2003(HY000)后出现以下错误:无法连接到'linux server ip'(10060)上的MySQL服务器,当通过以下方式从c#连接时连接字符串<add name="MySqlConnection" connectionString="Server=LINUX_VM_SERVER_IP;Database=database;Uid=user;Pwd=password" providerName="MySql.Data.MySqlClient" /> 我收到错误:无法找到并指定mysql主机

    5. 我已经在LINUX_VM中检查过0.0.0.0:3306处于收听状态。

    6. 如果我尝试使用/>telnet LINUX_VM_IP 3306远程登录LINUX_VM MYSQL服务,我得到错误:正在连接到 LINUX_VM_IP ...无法在端口3306上打开与主机的连接:

1 个答案:

答案 0 :(得分:3)

首先,尝试连接托管数据库的VM上的数据库。如果连接成功,则数据库的配置是正确的。否则,请检查数据库的配置。

其次,如果您能够连接到VM上的数据库,那么此问题的最可能原因是防火墙。请检查本地防火墙(iptables)是否允许端口3306上的入站连接。出于测试目的,您可以暂时禁用防火墙。另外,请检查NSG是否已正确配置以允许端口3306上的入站流量。

此外,如果VNET已与NSG关联,那么我们也需要允许NSG中的入站流量。

enter image description here