GCP CloudSQL Access из того же проекта GCP без прокси - PullRequest
0 голосов
/ 08 октября 2018

Я полностью озадачен тем, что, по-моему, легко.Безуспешно я искал несколько дней, изучая облачный SQL.Существует множество примеров для движка приложений, но почти нет примеров простоты подключения виртуальной машины GCP к GCP Cloud SQL.Инструкции от Google, кажется, не полны.Вот что у меня есть:

В том же проекте GCP я создал виртуальную машину Bitnami LAMP.В том же проекте я создал экземпляр CloudSQL с одной базой данных и двумя таблицами.Я намерен поэкспериментировать с доступом к CloudSQL через PHP-скрипт из виртуальной машины.(Да, я знаю, что мог бы установить SQL-сервер на виртуальной машине, но я хочу узнать, как получить доступ к CloudSQL).Обратите внимание, что все в одном проекте GCP, поэтому, насколько я понимаю, мне НЕ нужно использовать прокси-сервер SQL.

Я также включил CloudSQL API в проекте.

<?php
$DB_NAME = "dwelling_winebot";
$DB_USER = "winebot_reader";
$DB_PASS = "winebot_reader";
$tableName = "wines";
$mysqli = new mysqli(null, $DB_USER, $DB_PASS, $DB_NAME,null, "/cloudsql/web-sites-123456:us-central1:winebot");

... More code below

Ошибка, которую я получаю в apache error_log:

[08-Oct-2018 05:00:24 America/Los_Angeles] PHP Warning:  mysqli::__constru
ct(): (HY000/2002): No such file or directory in /opt/bitnami/apache2/htdo
cs/winebot/serverside/inforunner.php on line 25

(Кстати, строка 25 - это строка $ mysqli, а имя файла php - inforunner.php, в котором есть phpприведенный выше код)

Известные факты:

  • Я МОГУ видеть экземпляр базы данных, если я запускаю "gcloud sql instance
    description winebot"
    • Я создалПользователь по имени winebot_reader ... Сказав это, я также попробовал «root» с паролем «», как предлагали некоторые документы.Не повезло.
    • Имя экземпляра cloudsql влияет на правильное имя проекта, зону и базу данных из консоли.
    • Кажется, у меня нет локальной папки / cloudsql с путями сокетов, как некоторыедокументы предполагают, что я должен иметь?
    • В соответствии с консолью, CloudSQL API включен
    • В поле местоположения вызова mysqli (первый параметр) я попытался, null, localhost, 127.0.0.1.Все с одинаковым результатом.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 08 октября 2018

используйте внутренний IP вместо сокета, который не существует.

см. Подключение MySQL Client из Compute Engine для справки.

...