Как подключиться к Google Cloud SQL, используя php? - PullRequest
0 голосов
/ 11 марта 2020

С помощью следующего кода я могу подключиться к моему экземпляру SQL из среды localhost, но когда я загружаю тот же код в свой экземпляр виртуальной машины и пытаюсь подключить его оттуда, я получаю сообщение "соединение не установлено: время соединения истекло"

Примечание. Я добавил внешний IP-адрес экземпляра виртуальной машины в раздел Авторизованная сеть.

<?php
$servername = "SQL INSTANCE IP ADDRESS : port";
$username = "root";
$password = "password";
$dbname="appdb";

$response=array();

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

Пожалуйста, помогите, спасибо.

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Как подключиться из Compute Engine к облаку SQL внутренний IP-адрес (PHP)

Ваш экземпляр Compute Engine должен находиться в том же регионе, что и ваш экземпляр Cloud SQL, и в сети, настроенной для частного соединения

1. Создайте экземпляр Cloud SQL с внутренним IP-адресом. Создайте пользователя, пароль и базу данных.

2. Начало работы с PHP в Compute Engine

После того, как вы скопировали startup-script.sh runt эту команду, чтобы создать экземпляр:

 gcloud compute instances create $MY_INSTANCE_NAME \
--image-family=ubuntu-1804-lts \
--image-project=ubuntu-os-cloud \
--machine-type=g1-small \
--scopes userinfo-email,cloud-platform,sql-admin  \
--metadata-from-file startup-script=scripts/startup-script.sh \
--zone $ZONE \
--tags http-server

В области, которые мы добавили sql-admin, затем создайте правило брандмауэра.

3.S SH для только что созданного вами экземпляра.

4.Установите mysql. Вы можете добавить эту часть в сценарий запуска.

 sudo apt install mysql-client-core-5.7

5. Проверьте, можете ли вы подключиться к SQL экземпляру, используя внутренний IP-адрес.

mysql --host=internall-ip-sql  --user=test --password

6. Если вы затем можно подключиться:

cd /opt/app/routes
sudo nano web.php

7.Добавьте свой код в router->get('/', function (Request $request)

8.В браузере go в http://compute-engine-instance-externall-ip

Успех!

0 голосов
/ 11 марта 2020

Если у вас есть PHP вне GCP (вычисление виртуальной машины, App Engine и т. Д. c), вы можете установить облачный прокси 1002 * на сервер приложений, и ваше приложение будет подключаться, как если бы БД находилась на локальном хосте, или вы можете использовать publi c настройки IP (я бы посоветовал использовать прокси таким образом, чтобы вам не приходилось подключать publi c IP к вашему SQL экземпляр)

Если приложение PHP размещено в GCP, вы можете выполнить действия для службы , где ваше приложение

...