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



我有一个在Google App Engine上运行的Laravel应用程序,我想将其连接到我拥有的Google Cloud SQL数据库。我尝试了许多解决方案,但没有一个可以解决问题。每次它向数据库发出请求时,它都会抛出
SQLSTATE[HY000] [2002] 没有这样的文件或目录(SQL:从sessions中选择 *,其中id= CQZwtQFAm5RCYcP4ZSqf5mtxTnebGUigQQKVluJa limit 1(。
我确实有会话表,并且在尝试登录时也收到此错误,但随后使用用户表。

我尝试更改所有环境变量,编辑配置/数据库.php文件,...

这是我的应用程序.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"

以下是配置/数据库的一部分.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

如果这不起作用,请检查此链接并激活您的 API(如果您尚未这样做(。

此外,如果启用 API 无法解决问题,请将cloud_sql_instances变量恢复为值上的双引号。

相关内容

  • 没有找到相关文章

最新更新