PHP (PDO) соединение с облачным SQL на Google App Engine не работает - PullRequest
0 голосов
/ 26 мая 2018

У меня возникают проблемы с подключением к экземпляру Cloud SQL, размещенному в гибкой среде механизма приложений, которая использует один и тот же проект.Я использую PHP Data Object (PDO) для создания соединения.Я продолжал получать эту ошибку:

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

Даже когда я выполнил все настройки для авторизации приложения,и т.д.

Вот мой пример кода:

public function __construct() {
    try {

        $this->datab = new PDO('mysql:unix_socket=/cloudsql/<MY INSTANCE CONNECTION NAME>;dbname=MY_DATABASE', 'USERNAME', 'PASSWORD');

        $this->datab->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $this->datab->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

    } catch (PDOException $e) {
        $this->isConnected = false;
        throw new Exception($e->getMessage());
    }
}

Пожалуйста, нужно ли мне что-нибудь сделать, чтобы он работал?Сейчас я действительно в запасе, и мне нужна помощь.

Заранее спасибо.

1 Ответ

0 голосов
/ 12 июня 2018

Попробуйте это

  in app.yaml
  env_variables:
  MYSQL_USER: username
  MYSQL_PASSWORD: password
  MYSQL_DSN: mysql:unix_socket=/cloudsql/instancename;dbname=yourdbname

  in your script:
  $dsn=getenv('MYSQL_DSN');
  $user=getenv('MYSQL_USER');
  $pass=getenv('MYSQL_PASSWORD');
  $dbh = new PDO($dsn, $user, $pass);
...