gcloud sql连接不起作用

时间:2018-07-04 09:33:31

标签: php google-app-engine pdo google-cloud-datastore codeigniter-3

我已经通过 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>

1 个答案:

答案 0 :(得分:0)

在Symfony 4项目中遇到了同样的情况。我的发现:

当我第一次在App引擎上部署该应用程序并设置了主机名时:

'主机名'=>'本地主机'

我收到此错误:

  

SQLSTATE [HY000] [2002]没有这样的文件或目录

后记我刚刚删除了上面的行(“主机名” =>“本地主机”)并再次部署了该应用程序。这对我有用

在接下来的部署中,我再次使用localhost添加了主机名,它可以正常工作。

结论

  • 首次部署:删除/删除主机名参数
  • 首次部署后,您可以再次使用设置主机名('hostname'=>'localhost')