Ошибка SQL «Нет такого файла или каталога» при подключении из Laravel PHP в AppEngine - PullRequest
0 голосов
/ 03 января 2019

Мы испробовали практически все решения, которые могли найти в Stackoverflow, но все еще получаем эту ошибку.

Мы используем Google Cloud SQL с нашим проектом Laravel. Мы развернули наш проект в движке приложения и используем облачный SQL для подключения к базе данных. Мы применили это для развертывания, но после развертывания мы не можем соединиться с базой данных и получить ошибку:

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

SQLSTATE [HY000] [2002] Нет такого файла или каталога (SQL: выберите * из sessions, где id = dbzqd19nOIbfwWndCLAbNYXThlIge96OM3t9MjDu limit 1)

Мы можем установить соединение с общедоступным IP-адресом, и в нашей локальной разработке он работает, но когда мы внедряем код в ядро ​​приложения, мы получаем эту проблему.

Конфигурация файла App.yaml:

runtime: php
api_version: '1.0'
env: flexible
threadsafe: true
env_variables:
  APP_DEBUG: 'True'
  APP_KEY: '<APP KEY HERE>'
  APP_LOG: errorlog
  APP_NAME: <APP NAME HERE>
  beta_settings: None
  CACHE_DRIVER: database
  cloud_sql_instances: '<project-id-here>:<region-here>:<name here>'
  DB_DATABASE: <name here>
  DB_HOST: 127.0.0.1 or localhost (neither work)
  DB_PASSWORD: <PASSWORD HERE> (also leaving empty doesn't work)
  DB_SOCKET: /mysql/mysql.sock
  DB_USERNAME: root
  SESSION_DRIVER: database
  STORAGE_DIR: /tmp
automatic_scaling:
  min_num_instances: 2
  max_num_instances: 20
  cpu_utilization:
    target_utilization: 0.5

1 Ответ

0 голосов
/ 03 января 2019

Проблема в том, что путь к файлу сокета unix в настоящее время установлен на /mysql/mysql.sock. Он должен быть установлен на /cloudsql/<INSTANCE_CONNECTION_NAME для подключения из экземпляра App Engine. Посетите страницу Соединение из App Engine в облачной документации SQL.

...