无法从谷歌应用引擎灵活的环境PHP项目连接到云sql实例

时间:2017-05-12 06:14:21

标签: php google-app-engine google-cloud-sql

我正在尝试在谷歌应用引擎灵活环境中部署测试php项目。

我的app.yaml看起来像这样:

*

runtime: php
env: flex
service: testphpflex
manual_scaling:
  instances: 1
#[START cloudsql_settings]
# Use the connection name obtained when configuring your Cloud SQL instance.
beta_settings:
    cloud_sql_instances: "my-first-project:us-central1:tempdb"
#[END cloudsql_settings]

*

composer.json看起来像这样:

{
    "require": {
        "silex/silex": "^1.3",
        "php": "5.6.*",
        "google/apiclient": "^2.0"

    },
    "require-dev": {
        "google/cloud-tools": "^0.6",
        "paragonie/random_compat": "^2.0",
        "phpunit/phpunit": "~4"
    }
}

我的示例代码如下所示:

<?php
 $conn = mysql_connect('unix_socket:/cloudsql/my-first-project:us-central1:tempdb',
         'username', 
         'password'
     );

     echo "<br><br/>connection done";
if(!$conn)
{
die('Connection Failed'.mysql_error());
}
else 
{
die('Connection successful');
}

?>

但是,我无法连接。有什么问题?

3 个答案:

答案 0 :(得分:1)

我的假设是未启用Google Cloud SQL API。

转到以下链接,查看是否已启用。如果没有,请启用它。

https://console.cloud.google.com/apis/api/sqladmin.googleapis.com/overview?project=_

然后尝试重新部署应用程序(很遗憾,您需要再次部署它)。如果是这种情况,那就是Connecting to 2nd gen Cloud SQL on App Engine flexible PHP 7.0 - missing socket

的副本

答案 1 :(得分:1)

Google Cloud Support告诉我,不推荐使用mysql_connect。自5.5以来,它已在PHP中弃用,因此不支持此功能。所以不支持上述内容。

答案 2 :(得分:0)

我想我明白为什么你会收到错误。

您应该使用:

mysql_connect(':/cloudsql/my-first-project:us-central1:tempdb',

mysql_connect('localhost:/cloudsql/my-first-project:us-central1:tempdb',

根据手册 http://php.net/manual/en/function.mysql-connect.php