gcloud sql соединение не работает - PullRequest
0 голосов
/ 04 июля 2018

Я загрузил CodeIgniter проект на Google Cloud APP Engine с Гибкая среда

Получение нижеуказанной ошибки при подключении экземпляра SQL

SQLSTATE [HY000] [2002] Нет такого файла или каталога

Имя файла: core / CodeIgniter.php

Номер строки: 518

приложение / 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 голосов
/ 20 декабря 2018

С аналогичным случаем столкнулся проект Symfony 4. Мои выводы по этому поводу:

Когда я впервые развернул приложение на ядре приложения, и было задано имя хоста:

'hostname' => 'localhost'

Я получил эту ошибку:

SQLSTATE [HY000] [2002] Нет такого файла или каталога

Afterwords Я только что удалил приведенную выше строку ('hostname' => 'localhost') и снова развернул приложение. Это сработало для меня

В следующих развертываниях я снова добавил имя хоста с localhost, и это сработало.

Заключение

  • Первое развертывание: удалить / удалить параметр имени хоста
  • После первого развертывания вы можете снова использовать set hostname ('hostname' => 'localhost')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...