链接 Google 计算引擎和 Google 云 SQL

Linking Google Compute Engine and Google Cloud SQL

** 对 Google 云计算引擎 (GCE) 以及与 Google 云 SQL 的明确文档的缺乏感到沮丧,尤其是 link 两者.没有实时支持,并且当前文档由于继续参考 Google App Engine 而缺乏清晰度。 Google App Engine 上的文档引用了 linking,但没有明确的在 VM 实例(在 Compute Engine - GCE 中)和 Google SQL 之间创建 link 的过程在 Google 云中的同一个项目上(同样都在 Google 云中)。

我已经安装了带有 Mariadb 的 Centos 7 VM (64)、MariaDB 服务器和 PHP 以及所有连接器。我已经测试了所有本地主机调用并且都在工作。

在 Google 的访问控制中 SQL:

  1. 方向似乎表明使用套接字然后使用 root 用于 PHP 应用程序?

    • 似乎很不安全。与使用 root 作为管理员然后在有限数据库中拥有 app 运行 有限权限用户的对比。需要不同的软件组件具有不同的数据库和 Table 访问。
  2. 当通过 CLI 在 mySQL 中建立具有特权的用户时,访问控制是否需要使用相同的设置设置相同的用户?

  3. 在云 SQl 上设置 SSL 时,是否应该将 SSL 自动填充到计算引擎,或者我是否也需要在计算引擎中设置密钥文件。我试过关闭此设置(需要非常安全的数据传输)。但是还是不开心。

  4. 在测试 PHP 访问中,到目前为止,我还没有收到数据调用, 甚至使用此处的说明:Accessing Google Cloud SQL instance from Google Compute Engine?

编辑 - 已解决 - 感谢下面的大卫和下面评论中提到的 link。

按照以下说明进行操作并添加以下步骤:

在 GCE 上从 PHP 连接到 Cloud SQL 的基本要素如下:

  1. 确保您的 Cloud SQL 实例具有 IPv4 地址(在实例页面的 "Access Control>IP address" 下)
  2. 找出您的 GCE 实例的 public IP 地址,并将其添加为您的 Cloud SQL 实例上的授权网络(在 "Access Control>Authorization" 下)。
  3. 为具有远程访问权限的实例添加 MySQL 用户名和密码(在 "Access Control>Users" 下 - 您需要一个用户作为客户端主机 %)
  4. 从 GCE 连接时使用标准 MySQL 连接系统(例如 mysqli_connect),使用您刚刚设置的用户名和密码,连接到您的云 SQL 的 IPv4 地址实例.

添加 SSL 非常手动 - 您需要创建一个客户端证书,并将服务器 CA、客户端证书和客户端私钥复制到服务器,然后配置您的 MySQL 客户端以使用它。

您提到套接字和根访问权限。这是特定于 App Engine 的。在 Compute Engine 中,您不能使用套接字进行连接,您可以自由使用您创建的任何用户。