我查了很多资料,但没能解决这个问题。 我能够访问在不同 Windows 机器上运行的 MySQL 服务器。我采取的步骤是
- 将 my.ini 文件绑定(bind)地址更改为 0.0.0.0
- 通过
GRANT ALL PRIVILEGES ON DATABASE.* TO user@'%' IDENTIFIED BY 'password';
创建用户并授予权限 - 从命令行到 Windows MySQL 服务器
mysql -h windows server ip -u user -p
它工作正常,并且从 MySQL Workbench 我可以从我的机器连接 Windows MySQL 服务器。但是在 Linux 虚拟机中我也做了同样的事情
- 更改 my.cnf 文件并将绑定(bind)地址更改为 0.0.0.0。
- 通过
GRANT ALL PRIVILEGES ON DATABASE.* TO user@'%' IDENTIFIED BY 'password';
创建用户并授予权限 从命令行到 LINUX MySQL 服务器
mysql -h linux server ip -u user -p
但为此,在提供密码后我收到以下错误ERROR 2003 (HY000): Can't connect to MySQL server on 'linux server ip' (10060)连接字符串
<add name="MySqlConnection" connectionString="Server=LINUX_VM_SERVER_IP;Database=database;Uid=user;Pwd=password" providerName="MySql.Data.MySqlClient" />
我收到错误:无法找到并指定 mysql 主机我已在 LINUX_VM 中检查到 0.0.0.0:3306 处于监听状态。
如果我尝试使用
/>telnet LINUX_VM_IP 3306
telnet LINUX_VM MYSQL Server 服务我收到错误:正在连接到 LINUX_VM_IP...无法在端口 3306 上打开与主机的连接:
最佳答案
首先,尝试连接到托管数据库的虚拟机上的数据库。如果连接成功,则说明数据库配置正确。否则,请检查您的数据库配置。
其次,如果您能够连接到虚拟机上的数据库,那么导致此问题的最可能原因是防火墙。请检查本地防火墙(iptables)是否允许端口 3306 上的入站连接。出于测试目的,您可以暂时禁用防火墙。另外,请检查 NSG 是否已正确配置以允许端口 3306 上的入站流量。
此外,如果 VNET 已与 NSG 关联,那么我们也需要允许 NSG 中的入站流量。
关于mysql - 如何连接到在azure中的linux虚拟机上运行的mysql服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40465726/