You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codeigniter 4部署GCloud App Engine后连接Cloud MySQL超时问题

解决Codeigniter部署在GAE连接Cloud MySQL超时问题

核心问题分析

你的配置存在两个关键错误:

  1. 驱动与DSN不兼容:使用MySQLi驱动却配置了PDO风格的DSN,MySQLi驱动无法识别该DSN,会忽略它转而使用hostname+port走TCP连接。
  2. 连接方式混用:同时配置了Unix Socket的DSN和公网IP的hostname,导致驱动优先尝试TCP连接公网IP,而GAE环境下直接连公网IP容易因网络限制或白名单问题超时。

正确配置方案

方案一:Unix Socket连接(GAE标准环境推荐)

这种方式无需公网IP,也不需要配置IP白名单,稳定性更高。

  1. 修改Codeigniter数据库配置:
public $default = [
    'hostname' => 'localhost',
    'username' => 'username',
    'password' => 'password',
    'database' => 'db_name',
    'DBDriver' => 'MySQLi',
    'DBPrefix' => 'tbl',
    'pConnect' => false,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'charset'  => 'utf8mb4',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => false,
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
    'socket'   => '/cloudsql/project:region:instance', // 替换为你的Cloud SQL实例ID
];
  1. 在app.yaml中添加Cloud SQL实例配置:
beta_settings:
    cloud_sql_instances: "project:region:instance" # 与上面socket路径的实例ID一致

方案二:TCP公网连接(仅当必须使用时)

如果一定要用公网IP连接,需确保以下几点:

  1. 启用Cloud SQL实例的公网IP,并将GAE的出口IP添加到Cloud SQL的白名单(GAE标准环境出口IP是动态的,推荐使用VPC peering或Cloud SQL Auth Proxy替代)。
  2. 修改数据库配置,启用加密(公网连接强制要求):
public $default = [
    'hostname' => '你的Cloud SQL公网IP',
    'username' => 'username',
    'password' => 'password',
    'database' => 'db_name',
    'DBDriver' => 'MySQLi',
    'DBPrefix' => 'tbl',
    'pConnect' => false,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'charset'  => 'utf8mb4',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => true, // 公网连接必须启用加密
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
];

额外排查项

  • 确认Cloud SQL实例处于运行中状态
  • 验证数据库用户名/密码正确,且该用户有权限从当前连接方式访问(Unix Socket对应localhost权限,TCP对应白名单IP权限)
  • 检查app.yaml中的Cloud SQL实例ID与配置中的完全一致

内容的提问来源于stack exchange,提问作者user3682119

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:12:33