Google Cloud SQL 和 Google App Engine 之间的连接 - 超时

我正在设置一个需要连接到云端数据库的应用程序(google cloud sql)。我有一个连接到数据库并返回我需要的所有数据的 php 文件。它在本地主机上运行良好,但我无法让它在云上运行。


这是我的 .php 文件:


<?php



$conn = mysqli_connect("[MY_GOOGLE_SQL_PUBLIC_IP]", "root", "123", "mysql");


if (!$conn) {

    echo "Error: Unable to connect to MySQL." . PHP_EOL;

    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;

    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;

    exit;

}else{


echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;

echo "Host information: " . mysqli_get_host_info($conn) . PHP_EOL;



}


mysqli_close($conn);


?>

这是我的 app.yaml:


runtime: php55


handlers:

- url: .*

  script: cloud-test.php


beta_settings:

    cloud_sql_instances: "cloudtest-2412**:southamerica-east1:store"

如果我在我的本地主机 (127.0.0.1:8888) 上运行 php 文件,我会发现与 google sql 上的数据库建立了连接。但是当我将(gcloud app deploy)部署到应用引擎并尝试访问google提供的url时,出现以下错误:


错误:无法连接到 MySQL。调试错误号:2002 调试错误:连接超时


*sql 数据库和应用引擎在同一个项目中,所以我不需要给予任何特殊权限(就像我在本地主机上访问时必须授予我本地 ip 的权限一样)


有任何想法吗??


梵蒂冈之花
浏览 133回答 1
1回答

犯罪嫌疑人X

使用Instance connection name(cloudtest-2412**:southamerica-east1:store)代替MY_GOOGLE_SQL_PUBLIC_IP连接。您可以在 Cloud SQL 实例的实例详细信息页面上找到它。
打开App,查看更多内容
随时随地看视频慕课网APP