我已经通过 Flexible Environment
在 google cloud APP引擎上上传了 CodeIgniter 项目。在连接SQL实例时出现以下错误
SQLSTATE [HY000] [2002]没有这样的文件或目录
文件名:core / CodeIgniter.php
行号:518
application / config / database.php
$db['default'] = array(
'dsn' => 'mysql:unix_socket=/cloudsql/<instance-connection-name>;dbname=<data-base-name>',
'hostname' => 'localhost',
'username' => USERNAME,
'password' => PASSWORD,
'database' => DATABASE,
'dbdriver' => 'pdo',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
app.yaml
runtime: php
env: flex
runtime_config:
document_root: .
env_variables:
MYSQL_USER: USER
MYSQL_PASSWORD: PASSWORD
MYSQL_DSN: mysql:dbname=<database>;unix_socket=/cloudsql/<instance-connection-name>
beta_settings:
cloud_sql_instances: <instance-connection-name>
答案 0 :(得分:0)
在Symfony 4项目中遇到了同样的情况。我的发现:
当我第一次在App引擎上部署该应用程序并设置了主机名时:
'主机名'=>'本地主机'
我收到此错误:
SQLSTATE [HY000] [2002]没有这样的文件或目录
后记我刚刚删除了上面的行(“主机名” =>“本地主机”)并再次部署了该应用程序。这对我有用
在接下来的部署中,我再次使用localhost添加了主机名,它可以正常工作。
结论