Ошибка подключения к Google Cloud SQL из пользовательской среды App Engine по протоколу TCP - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь подключиться к экземпляру google sql cloud из пользовательской среды выполнения в App Engine.

Когда я следую указаниям doc для подключения через доменный сокет unix, это работает. Проблема в том, когда я пытаюсь подключиться, используя TCP-соединение. Показывает:

Warning: mysqli_connect(): (HY000/2002): Connection refused in 
/var/www/html/index.php on line 3
Connect error: Connection refused

Это мой файл app.yaml:

runtime: custom
env: flex

beta_settings:
  cloud_sql_instances: testing-mvalcam:europe-west1:testdb=tcp:3306

resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

Dockerfile:

FROM php:7.0-apache

ENV PORT 8080
CMD sed -i "s/80/$PORT/g" /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf && docker-php-entrypoint apache2-foreground

RUN docker-php-ext-install mysqli
RUN a2enmod rewrite

COPY ./src /var/www/html

EXPOSE $PORT

И index.php:

<?php

$link = mysqli_connect('127.0.0.1', 'root', 'root', 'test');

if (!$link){
    die('Connect error: '. mysqli_connect_error());
}

echo 'successfully connected';
mysqli_close($link);

?>

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 14 марта 2019

IP-адрес ‘172.17.0.1’ связан с док-контейнером, на котором работает веб-сервер, вы можете получить больше контекста об этом в этой документации .

На странице документации, которую вы используете, может не хватать при настройке варианта использования, если вы развертываете с присутствием Dockerfile. В следующей документации вы можете прочитать больше информации о гибких средах App Engine.

1 голос
/ 11 марта 2019

Как показывает документация , которую вы используете (не забудьте нажать на вкладку TCP CONNECTION на этой странице), в разделе app.yaml, связанном с информацией об экземплярах Cloud SQL о порте TCPиспользуется сервером базы данных.

...