如何在 Azure 中连接到 linux 虚拟机上的 mysql 服务器 运行
how to connect to a mysql server running on a linux virtual machine in azure
我搜索了很多但无法解决该问题。
我可以在不同的 windows 机器上访问 MySQL 服务器 运行。我采取的步骤是
- 将 my.ini 文件绑定地址更改为 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 文件并将绑定地址更改为 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) 后收到以下错误:无法连接到 'linux server ip' 上的 MySQL 服务器 (10060) 当通过以下连接字符串 <add name="MySqlConnection" connectionString="Server=LINUX_VM_SERVER_IP;Database=database;Uid=user;Pwd=password" providerName="MySql.Data.MySqlClient" />
从 c# 连接时
我收到 错误:无法找到并指定 mysql 主机
我已经在LINUX_VM中检查到0.0.0.0:3306处于监听状态。
如果我尝试使用 />telnet
LINUX_VM_IP 3306
远程登录 LINUX_VM MYSQL 服务器服务,我得到 错误:正在连接到
LINUX_VM_IP...无法在端口 3306 上打开与主机的连接:
首先,尝试连接到托管数据库的 VM 上的数据库。如果连接成功,那么数据库的配置是正确的。否则,请检查您的数据库配置。
其次,如果您能够连接到 VM 上的数据库,那么导致此问题的最可能原因是防火墙。请检查本地防火墙 (iptables) 是否允许端口 3306 上的入站连接。出于测试目的,您可以暂时禁用防火墙。此外,请检查 NSG 是否已正确配置以允许端口 3306 上的入站流量。
此外,如果 VNET 已经与 NSG 关联,那么我们也需要允许 NSG 中的入站流量。
我搜索了很多但无法解决该问题。 我可以在不同的 windows 机器上访问 MySQL 服务器 运行。我采取的步骤是
- 将 my.ini 文件绑定地址更改为 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 文件并将绑定地址更改为 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) 后收到以下错误:无法连接到 'linux server ip' 上的 MySQL 服务器 (10060) 当通过以下连接字符串
<add name="MySqlConnection" connectionString="Server=LINUX_VM_SERVER_IP;Database=database;Uid=user;Pwd=password" providerName="MySql.Data.MySqlClient" />
从 c# 连接时 我收到 错误:无法找到并指定 mysql 主机我已经在LINUX_VM中检查到0.0.0.0:3306处于监听状态。
如果我尝试使用
/>telnet LINUX_VM_IP 3306
远程登录 LINUX_VM MYSQL 服务器服务,我得到 错误:正在连接到 LINUX_VM_IP...无法在端口 3306 上打开与主机的连接:
首先,尝试连接到托管数据库的 VM 上的数据库。如果连接成功,那么数据库的配置是正确的。否则,请检查您的数据库配置。
其次,如果您能够连接到 VM 上的数据库,那么导致此问题的最可能原因是防火墙。请检查本地防火墙 (iptables) 是否允许端口 3306 上的入站连接。出于测试目的,您可以暂时禁用防火墙。此外,请检查 NSG 是否已正确配置以允许端口 3306 上的入站流量。
此外,如果 VNET 已经与 NSG 关联,那么我们也需要允许 NSG 中的入站流量。