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

问题描述 投票:0回答:1

我正在设置一个需要连接到云上的数据库(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提供的网址时,出现以下错误:

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

* sql数据库和app引擎在同一个项目中,因此我不需要授予任何特殊权限(例如,在本地主机上进行访问时,我必须为本地ip授予权限)

有任何想法吗??

谢谢

php mysql google-app-engine
1个回答
2
投票

使用Instance connection namecloudtest-2412**:southamerica-east1:store )代替MY_GOOGLE_SQL_PUBLIC_IP进行连接。

您可以在Cloud SQL实例的“实例详细信息”页面上找到该实例。

© www.soinside.com 2019 - 2024. All rights reserved.