我正在设置一个需要连接到云上的数据库(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授予权限)
有任何想法吗??
谢谢
使用Instance connection name
( cloudtest-2412**:southamerica-east1:store
)代替MY_GOOGLE_SQL_PUBLIC_IP
进行连接。
您可以在Cloud SQL实例的“实例详细信息”页面上找到该实例。