Связь между Google Cloud SQL и Google App Engine - истекло время ожидания - PullRequest
0 голосов
/ 20 мая 2019

Я настраиваю приложение, которое должно подключаться к базе данных в облаке (Google Cloud SQL). У меня есть php-файл, который подключается к базе данных и возвращает все данные, которые мне нужны. Он отлично работает на локальном хосте, но я не могу заставить его работать в облаке.

Вот мой файл .php:

<?php


$conn = mysqli_connect("[MY_GOOGLE_SQL_PUBLIC_IP]", "root", "123", "mysql");

if (!$conn) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}else{

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($conn) . PHP_EOL;


}

mysqli_close($conn);

?>

Вот мой app.yaml:

runtime: php55

handlers:
- url: .*
  script: cloud-test.php

beta_settings:
    cloud_sql_instances: "cloudtest-2412**:southamerica-east1:store"

Если я запускаю на своем локальном хосте (127.0.0.1:8888) файл php, я получаю, что было установлено соединение с моей базой данных в google sql. Но когда я внедряю (gcloud app deploy) в движок приложения и пытаюсь получить доступ к URL-адресу, предоставленному Google, я получаю следующую ошибку:

Ошибка: невозможно подключиться к MySQL. Ошибка отладки: 2002 Ошибка отладки: истекло время ожидания соединения

* База данных sql и ядро ​​приложения находятся в одном проекте, поэтому мне не нужно давать какого-либо специального разрешения (например, я должен дать разрешение для своего локального ip при доступе на моем локальном хосте)

Есть идеи ??

Спасибо

1 Ответ

2 голосов
/ 21 мая 2019

Используйте для подключения Instance connection namecloudtest-2412**:southamerica-east1:store) вместо MY_GOOGLE_SQL_PUBLIC_IP.

Это можно найти на странице сведений об экземпляре для вашего экземпляра Cloud SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...