Как мне подключиться к моему сервису MySQL в Pivotal Cloud Foundry (PCF) через MySQL Workbench, интерфейс командной строки или приложение для управления базами данных MySQLWeb?

У меня есть основанное на Spring Boot приложение REST, которое развернуто на Pivotal Cloud Foundry (PCF) и работает нормально. Но это приложение REST до сих пор не имело подключения к БД. Поэтому я решил установить службу MySQL на PCF с торговой площадки и, наконец, успешно привязал ее к моему приложению.

Однако проблема в том, что я НЕ могу подключиться к этому вновь созданному экземпляру MySQL через CLI или любой другой GUI.

До сих пор я следил за следующими ссылками, но не повезло.

Шаги, которые я выполнил для этого:

  1. Экземпляр службы для MySQL успешно создан
  2. Экземпляр службы для MySQL успешно привязан к приложению (см. результат команды cf services выше)

    # службы поддержки

    последняя операция привязанных приложений плана службы имен

    my-mysql-db             cleardb          spark      agrisell-rest-app   create succeeded
    
  3. Мое приложение успешно отправлено и может успешно попасть в REST API

    https://agrisell-rest-app.cfapps.io/hello

  4. Включено ssh в хост-приложении с помощью cf enable-ssh agrisell-rest-app успешно

  5. Создал служебный ключ с помощью cf create-service-key my-mysql-db my-mysql-db-service-key (команда получения служебных ключей после создания показана ниже)

    # cf service-keys my-mysql-db

    имя my-mysql-db-service-key

  6. Получен служебный ключ и учетные данные БД с помощью следующей команды

cf service-key my-mysql-db my-mysql-db-service-key

{
 "hostname": "us-cdbr-iron-east-01.cleardb.net",
 "jdbcUrl": "jdbc:mysql://us-cdbr-iron-east-01.cleardb.net/ad_b509d7f388732d5?user=hello123\u0026password=world456",
 "name": "ad_b509d7f388732d5",
 "password": "world456",
 "port": "3306",
 "uri": "mysql://b311794a3c31eb:[email protected]:3306/ad_b509d7f388732d5?reconnect=true",
 "username": "hello123"
}
  1. Туннель SSH успешно настроен

    cf ssh -L 63306: us-cdbr-iron-east-01.cleardb.net: 3306 agrisell-rest-app

  2. Доступ к экземпляру службы через CLI

    vcap@33eb3942-10bd-4068-650f-64fc:~$ mysql -u hello123 -h 0 -p -D ad_b509d7f388732d5 -P 63306 bash: mysql: команда не найдена

Основываясь на приведенной выше ошибке, мне показалось, что плагины mysql неправильно установлены, но они у меня уже установлены.

# cf plugins
Listing installed plugins...

plugin   version   command name   command help
mysql    2.0.0     mysql          Connect to a MySQL database service
mysql    2.0.0     mysqldump      Dump a MySQL database

Use 'cf repo-plugins' to list plugins in registered repos available to install.

Второй подход:

Второй подход, который я пробовал, состоял в том, чтобы подключиться к PCF MySQL DB через MySQL Workbench, который идет в комплекте с установкой сервера MySQL на Windows. Я использую его для подключения к моему локальному MySQL DB. Я изменил настройки, чтобы указать на хост, базу данных и изменил учетные данные, и попытался подключиться, что тоже не сработало.

Третий подход

Третий подход, который я пробовал, заключался в установке инструмента Pivotal MySQL Web Database Management, который я из одной из PCF документации.

https://docs.pivotal.io/p-mysql/2-2/use.html#mysqlweb

Я установил его на свою машину Windows 10 (не разворачивал на PCF) и попытался войти в систему, но это тоже не удалось.

Второй подход был опробован и потерпел неудачу

Основываясь на вашем ответе, Арун, я выполнил все инструкции, упомянутые в файле Readme здесь (https://github.com/pivotal-cf/PivotalMySQLWeb), но не позволяет мне войти в приложение с URL-адресом БД и учетными данными. Первый вход в систему с учетными данными admin/cfmysqlweb работает, но страница входа, где требуются учетные данные БД и пароль, отправляет меня обратно на первый экран входа с сообщением «Неверные учетные данные». Скриншот ниже.

Развернул PivotalMysqlWeb на PCF и привязал его к экземпляру БД

введите здесь описание изображения

Страница входа, которая появляется после успешной базовой аутентификации с использованием учетных данных admin/cfmysqlweb

введите здесь описание изображения

Учетные данные БД, введенные выше, и при отправке я возвращаюсь на первую страницу входа (назад к началу)

введите здесь описание изображения


person Nital    schedule 21.01.2019    source источник
comment
Если вы используете ClearDb, вам ничего из этого не нужно. ClearDb предоставляет общедоступные IP-адреса, через которые вы можете получить доступ к своим услугам из любой точки Интернета. Таким образом, вы можете mysql или MySQL Workbench напрямую с вашего локального ПК взаимодействовать с вашей БД.   -  person Daniel Mikusa    schedule 23.01.2019
comment
Если вы используете другого провайдера MySQL, ваш пробег будет другим. Различные обеспечивают доступ к обработке по-разному. В PWS, если вы используете MySQL, управляемый Pivotal, это разрешает доступ только из контейнеров вашего приложения. Вот где вам нужно использовать cf ssh и настроить туннель или нажать приложение, такое как Pivotal MySQL Web или PHPMyAdmin, для управления вашей БД.   -  person Daniel Mikusa    schedule 23.01.2019
comment
Да, я смог подключиться к ClearDb через MySQL Workbench. Но тогда мое приложение не смогло подключиться к нему даже после правильного указания имени хоста, порта и учетных данных. Кроме того, база данных ClearDb также была более старой версией MySQL 5.x.   -  person Nital    schedule 24.01.2019


Ответы (3)


Вы не можете подключиться ни к одному из Marketplace service с помощью инструментов, которые есть на вашем ПК/ноутбуке (например, то, что вы делаете с приложением MySQL)

Причина в том, что любой сервис Marketplace в PCF может работать где угодно, и вам просто предоставляется instance его.

В целях безопасности ваша услуга Marketplace (которую вы заказали... которую вы оплатили) доступна только этому конкретному PCF Foundation...

Если вы все еще хотите подключиться к MySQL и взглянуть на свою базу данных, я рекомендую вам использовать инструмент PivotalMySQLWeb< /а> . Вам нужно будет загрузить это приложение в тот же PCF-space и привязать его к вашему MySQL DB Instance, которое вы бы создали в этом space. Вы можете просмотреть множество инструкций в их README file

person Arun    schedule 21.01.2019
comment
Спасибо за объяснение, Арун. Любая идея о том, как подключиться с помощью CLI через SSH? - person Nital; 21.01.2019
comment
Вы должны установить инструмент CF CLI в своей системе и можете войти в PCF ... После входа в систему вы можете SSH входить в приложения, работающие там, с помощью команды cf ssh ‹app-name› - person Arun; 21.01.2019
comment
У меня это уже установлено, и на вышеупомянутых шагах я уже могу подключиться к системе по SSH. Единственная проблема заключается в том, что я не могу получить доступ к MySQL через клиент MySQL CLI, о котором я уже упоминал. - person Nital; 21.01.2019
comment
Вы не можете сделать это с помощью инструмента CLI, но можете использовать инструмент веб-интерфейса Pivotal. Я обновил свой ответ. Пожалуйста, взгляните на это - person Arun; 22.01.2019
comment
Я развернул инструмент PivotalMySQLWeb на PCF и привязал его к экземпляру БД, как указано в файле Readme. Но теперь войти не получается. Я обновил исходный пост своими выводами в разделе «Второй подход, опробованный и неудачный», а также предоставил скриншоты каждого шага. Во всем следил за их документацией, но мне кажется, что в PCF много ошибок. Ни их CLI подключение к MySQL не работает, ни их инструмент с графическим интерфейсом не работает. - person Nital; 23.01.2019
comment
Имя пользователя и пароль, указанные в их файле README, — «admin», а пароль — «cfmysqlweb». Вы также можете настроить это. Пожалуйста, прочтите README полностью ... Я использовал этот инструмент несколько раз и нашел его лучшим - person Arun; 23.01.2019
comment
Я использовал admin/cfmysqlweb по умолчанию, который работает. Но проблема с экраном, который появляется после этого. Я ввел имя пользователя и пароль БД, а также URL-адрес jdbc. Вот когда он возвращает меня на первую страницу с сообщением о неверных учетных данных. - person Nital; 23.01.2019
comment
Хорошо ... Итак, это работает. Если вы найдете это решение подходящим для вашей проблемы, отметьте это как правильный ответ. - person Arun; 23.01.2019
comment
Нет, это не Арун. Весь смысл этого вопроса заключался в том, чтобы подключиться к DB либо через PCF CLI, либо через инструмент GUI, такой как PivotalMySQLWeb. И ни один из них не работал до настоящего времени. Тот факт, что я смог войти в GUI, не обеспечивает мне аутентификацию/подключение к DB. - person Nital; 23.01.2019
comment
В тот момент, когда вы привяжете свой инструмент PivotalMySqlWeb к экземпляру MySQl, он автоматически подключится к БД и покажет вам подробности... Вам просто нужно войти в систему с учетными данными по умолчанию — admin / cfmysqlweb, и вам не нужно указывать учетные данные БД. - person Arun; 23.01.2019
comment
Да, но у меня почему-то не работает. Я трижды проверил свой manifest.yml, а также проверил, привязан ли мой графический интерфейс к моей БД как в пользовательском интерфейсе, так и через CLI, и я не нашел никаких расхождений. Меня постоянно просят предоставить учетные данные БД после базовой аутентификации, и как только я ввожу учетные данные БД и URL-адрес JDBC, происходит сбой с сообщением Bad Credentials. Даже мое приложение Spring Boot не может подключиться к этой БД. Не уверен, что делать сейчас. Позвольте мне попробовать создать новый экземпляр БД и повторить попытку. - person Nital; 23.01.2019
comment
Создал новый экземпляр MySQL с нуля и привязал его к инструменту PivotalMySqlWeb, но не работал. Немного хороших новостей. Удалось подключиться к серверу MySQL через инструмент MySQL Workbench с моего компьютера с Windows. - person Nital; 23.01.2019
comment
Спасибо за помощь Арун. По какой-то причине предоставленные решения не сработали для меня. Но большое спасибо за ваши советы и поддержку. - person Nital; 23.01.2019
comment
@Nital Я могу подтвердить, что это приложение работает как шарм. Все, что вам нужно сделать, это: 1) изменить файл manifest.yml, заменив имя базы данных pas-mysql на имя службы mysql. 2) подтолкните это приложение к себе. PCF автоматически привяжет базу данных. 3) Откройте приложение и войдите в систему, используя admin/cfmysqlweb. Большое спасибо, Арун. Проголосовал за вопрос и ответ. - person dbaltor; 17.04.2021

Я установил MySQL Workbench и создал новое соединение. Затем заполнил реквизиты из сервисных реквизитов на PCF (те, что вы выложили)

{
 "hostname": "us-cdbr-iron-east-01.cleardb.net",
 "jdbcUrl": "jdbc:mysql://us-cdbr-iron-east-01.cleardb.net/ad_b509d7f388732d5?user=hello123\u0026password=world456",
 "name": "ad_b509d7f388732d5",
 "password": "world456",
 "port": "3306",
 "uri": "mysql://b311794a3c31eb:[email protected]:3306/ad_b509d7f388732d5?reconnect=true",
 "username": "hello123"
}

Итак, в вашем случае:

хост: us-cdbr-iron-east-01.cleardb.net

Имя пользователя: привет123

Пароль: world456

Схема по умолчанию: ad_b509d7f388732d5 Порт: 3306

Интересно отметить, что схема по умолчанию должна соответствовать атрибуту имени. Я ввел пользовательское имя и не смог подключиться. Не очень уверен, почему, но что вы можете сделать.

person user170800    schedule 03.03.2020

Если кто-то хочет подключить aws-rds-mysql (экземпляр от Pivotal Cloud Foundry) из IntelliJ, выполните следующие действия:

После того, как вы создали ssh-туннель, вы можете получить доступ к базе данных AWS-RDS с вашего локального хоста через порт 63306, следуйте инструкциям, чтобы подключить БД с помощью плагина DB Navigator (intelliJ)

  • Установите плагин DB Navigator в intelliJ (Community Edition), если вы еще не установили его — › https://plugins.jetbrains.com/plugin/1800-database-navigator
  • Connect to AWS RDS in intelliJ -> notice the connection is made via localhost on port 63306
    • Go to DB Navigator plugin and click on custom under new connection.
    • Введите URL-адрес в следующем виде: jdbc:mysql://:@localhost:63306/‹database_name›

Инструкции также доступны на GitHub

person Arsalan Khan    schedule 08.12.2020