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

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

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

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

在我的应用引擎的 app.yaml 中我插入了:vpc_access_connector:名称:projects/locationconnection/locations/europe-west3/connectors/vpcaccess

VM 实例显示内部 IP 为 10.156.0.2,外部 IP 为 34.89.141.17

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

从我家连接到 34.89.141.17 时:mysqli::__construct(): (HY000/2002): 无法建立连接,因为目标计算机主动拒绝。(我甚至创建了防火墙规则以允许来自我家 IP 的所有流量)

从应用引擎连接到 10.8.0.0 时:2002:连接超时

从应用引擎连接到 10.156.0.2 时:2002:连接被拒绝

我怎样才能建立连接?

答案1

在指南上如何在 Google Compute Engine 上设置 MySQL展示了如何设置 Mysql,但请记住 Mysql 有自己的配置。根据您提到的错误,问题在于 Mysql 允许外部连接。当您添加用户并向他们(或现有用户)授予权限时,您需要指定允许该用户连接的主机或网络范围。例如,此行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; 向 root 用户授予所有权限,并允许来自所有主机的 root 用户连接(@ 后的 '%' 是通配符,表示来自所有主机)。您可以像这样对私有网络使用通配符,10.156.0.%主机申请公共 IP 或来自您私有网络的 IP。查看此站点了解更多信息如何允许远程连接到 MySQL. 请记住全面开放的允许主机策略所带来的安全风险。

相关内容