繁体   English   中英

如何在Azure中连接到在Linux虚拟机上运行的mysql服务器

[英]how to connect to a mysql server running on a linux virtual machine in azure

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

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

它工作正常,并且可以从MySQL工作台从我的机器连接Windows MySQL服务器。 但是在Linux虚拟机中我做过同样的事情

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

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

  4. 我已经在LINUX_VM中检查到0.0.0.0:3306处于侦听状态。

  5. 如果我尝试使用/>telnet LINUX_VM_IP 3306 telnet LINUX_VM MYSQL Server服务,则出现错误:连接到LINUX_VM_IP ...无法打开端口3306上的主机连接:

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

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

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

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM