无法将 App Engine 上的 Laravel 应用程序连接到云 SQL 数据库

Not able to connect Laravel application on App Engine to Cloud SQL database

我在 Google App Engine 上有一个 Laravel 应用程序 运行,我想将它连接到我拥有的 Google 云 SQL 数据库。我已经尝试了很多解决方案 none 解决了这个问题。每次它向数据库发出请求时,它都会抛出
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * 来自 sessions,其中 id = CQZwtQFAm5RCYcP4ZSqf5mtxTnebGUIgQQKVluJa 限制 1)
我确实有会话 table,我在尝试登录时也遇到了这个错误,但当时是 table 用户。

我正在尝试更改所有环境变量,编辑 config/database.php 文件,...

这是我的 app.yaml:

runtime: php
env: flex

runtime_config:
  document_root: public

env_variables:
  APP_ENV: production
  APP_DEBUG: true
  APP_LOG: errorlog
  APP_KEY: mykey
  APP_TIMEZONE: "Europe/Brussels"
  CACHE_DRIVER: database
  SESSION_DRIVER: database

  DB_HOST: localhost
  DB_DATABASE: data
  DB_USERNAME: root # tried custom user aswell
  DB_PASSWORD: mypassword
  DB_SOCKET: "/cloudsql/projectname:region:instancename"

beta_settings:
  cloud_sql_instances: "projectname:region:instancename"

这是 config/database.php 的一部分(大部分未经编辑):

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

显然我希望这个连接成功。如果您需要更多代码部分,请告诉我。

提前致谢

请更改此行:

cloud_sql_instances: "projectname:region:instancename"

进入这一行:

cloud_sql_instances:projectname:region:instancename

如果这不起作用,请检查 this link 并激活您的 API(如果您尚未激活)。

此外,如果启用 API 没有解决问题,请将 cloud_sql_instances 变量恢复为在值上使用双引号。