繁体   English   中英

从 App Engine 和外部连接到 Google Compute Engine 上的 MySQL

[英]Connect to MySQL on Google Compute Engine from App Engine and externally

我成功创建了一个 Compute Engine VM 实例,并使用本指南在其上安装了 MySQL: https://cloud.google.com/solutions/setup-mysql

现在我想从 App Engine 连接到它,如果可能的话也从我家连接到它。 使用本指南: https://cloud.google.com/appengine/docs/standard/python/connecting-vpc我创建了连接器,并为其提供了建议的 10.xxx/28 IP 地址。

在我的应用程序引擎的 app.yaml 中,我插入了:vpc_access_connector: name: projects/xxxxxxxxxx/locations/europe-west3/conectors/xxxxxx

VM 实例显示 10.xxx 的内部 IP 和 34.xxx 的外部 IP

我正在尝试使用以下行从 PHP 连接:new mysqli($servername, $username, $password, $dbname, 3306, null); 但我得到不同的错误。

从我家连接到 34.xxx 时:mysqli::__construct(): (HY000/2002): 由于目标机器主动拒绝,无法建立连接。 (我什至创建了一个防火墙规则来允许来自我的家庭 IP 的所有流量)

从 App Engine 连接到 10.xxx 时:2002:连接超时

从 App Engine 连接到 10.xxx 时:2002:连接被拒绝

我怎样才能建立联系?

我的第一个猜测是实例内部的服务没有启动和运行,检查 MySQL 的服务是否正在运行和监听,你可以通过做一个nmap 测试来试试你的 MySQL VM 实例nmap 34.0.0.0 . 您应该看到类似这样的内容(如果您使用的是标准端口):

PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   closed http
443/tcp  closed https
3306/tcp open  mysql

请记住,您需要在 GCP 上处理两个防火墙(VPC 防火墙和操作系统防火墙)。 因此,如果您无法看到此端口,请通过连接到您的 VM 实例并键入sudo systemctl start mysql ,现在再次运行nmap 34.0.0.0 ,您应该会看到该服务。

要从 App Engine 连接到 Compute Engine VM 实例上的 MySQL,只需按照其他指南操作即可。

从家里连接 你最好通过 SSH连接到实例,然后访问你的数据库,或者如果你需要直接连接到套接字,你可以继续通过 VPN 连接以使用内部 IP 地址访问它, 请注意避免达到限制或丢失此连接所需的IAM 角色和权限等内容。

暂无
暂无

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

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