SQLSTATE[HY000] [2002] 没有该文件或目录,google cloud app engine Flexible

SQLSTATE[HY000] [2002] 没有该文件或目录,google cloud app engine Flexible

我正在尝试将云 SQL 与 google cloud app engine 灵活连接起来。

我的代码如下:

$dsn = getenv('MYSQL_DSN');
$user = getenv('MYSQL_USER');
$password = getenv('MYSQL_PASSWORD');
try {
    $db = new PDO($dsn, $user, $password);
    $statement = $db->prepare("SELECT * from user");
    $statement->execute();
    $users = $statement->fetchAll();
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

应用程序.yaml

runtime: php
env: flex

runtime_config:
    document_root: .

env_variables:
    MYSQL_DSN: mysql:dbname=DATABASE;unix_socket=/cloudsql/CONNECTION_NAME
    MYSQL_USER: username
    MYSQL_PASSWORD: password

出现以下错误

SQLSTATE[HY000] [2002] 没有该文件或目录

答案1

如果有人仍在努力解决这个问题,请不要忘记在 cloud_sql_instances:“CONNECTION_NAME” 周围使用引号,也不要忘记在 app.yaml 中的任何环境变量周围使用引号。

此外,请确保您已启用 Cloud SQL 和 Cloud SQL Admin API(通常在您的 Google Cloud Console 中只启用第一个)。

答案2

尝试在 app.yaml 中添加此内容

# Use the connection name obtained when configuring your Cloud SQL instance.
beta_settings:
    cloud_sql_instances: "CONNECTION_NAME"

相关内容