【问题标题】:How to connect to Google cloud SQL instance using php?如何使用 php 连接到谷歌云 SQL 实例?
【发布时间】:2020-06-23 17:31:27
【问题描述】:

使用以下代码可以从 localhost 环境连接到我的 SQL 实例,但是当我将相同的代码上传到我的 VM 实例并尝试从那里连接时,出现“连接失败:连接超时”

注意:我在授权网络部分添加了虚拟机实例的外部 IP 地址。

<?php
$servername = "SQL INSTANCE IP ADDRESS : port";
$username = "root";
$password = "password";
$dbname="appdb";

$response=array();

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

请帮忙,谢谢。

【问题讨论】:

  • 外部 IP 地址?这听起来不对,因为数据库通常不会暴露在公共互联网上。
  • 那我们如何从VM实例连接到sql实例呢?
  • @MohammedYassineCHABLI 这就是我所做的,但仍然连接超时
  • @MohammedYassineCHABLI 谢谢,我们应该使用 sql 实例名称来连接 sql 实例。

标签: php google-cloud-sql


【解决方案1】:

如果您的 PHP 位于 GCP 之外(计算 VM、App Engine 等),您可以在您的应用服务器中安装 cloud proxy,您的应用会像数据库在本地主机中一样连接,或者您可以使用public IP settings(我建议以这种方式使用代理,您不必使用将公共 IP 附加到 SQL 实例)

如果 PHP 应用程序托管在 GCP 中,您可以按照您的应用程序所在位置的the service 的步骤进行操作

【讨论】:

    【解决方案2】:

    如何从 Compute Engine 连接到 Cloud SQL 内部 IP 地址 (PHP)

    您的 Compute Engine 实例必须与您的云位于同一区域 SQL 实例,并且在为专用连接配置的网络上

    1.Create the Cloud SQL 具有内部 IP 地址的实例。创建用户、密码和数据库。

    2.Getting started with PHP on Compute Engine

    复制startup-script.sh 运行此命令后创建实例:

     gcloud compute instances create $MY_INSTANCE_NAME \
    --image-family=ubuntu-1804-lts \
    --image-project=ubuntu-os-cloud \
    --machine-type=g1-small \
    --scopes userinfo-email,cloud-platform,sql-admin  \
    --metadata-from-file startup-script=scripts/startup-script.sh \
    --zone $ZONE \
    --tags http-server
    

    在我们添加sql-admin的作用域上,然后创建防火墙规则。

    3.SSH 到您刚刚创建的实例。

    4.安装mysql。您可以将此部分添加到启动脚本中。

     sudo apt install mysql-client-core-5.7
    

    5.测试是否可以使用内部IP地址连接到SQL实例。

    mysql --host=internall-ip-sql  --user=test --password
    

    6.如果可以连接的话:

    cd /opt/app/routes
    sudo nano web.php
    

    7.将您的代码添加到router-&gt;get('/', function (Request $request)

    8.在浏览器中转到http://compute-engine-instance-externall-ip

    成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 2020-04-13
      • 2020-04-02
      相关资源
      最近更新 更多