【发布时间】:2019-06-14 11:49:26
【问题描述】:
我有一个基于Spring Boot 的REST 应用程序部署在Pivotal Cloud Foundry (PCF) 上并且工作正常。但是这个 REST 应用程序直到现在还没有任何数据库连接。因此,我决定在市场上的PCF 上安装MySQL 服务,并最终成功地将其绑定到我的应用程序。
但是,问题是我无法通过CLI 或任何其他GUI 连接到这个新创建的MySQL 实例。
到目前为止,我已经关注了以下链接,但没有运气。
- https://docs.pivotal.io/pivotalcf/2-4/devguide/deploy-apps/ssh-services.html
- How to setup mysql develper for PCF mySQL database to manage it
我为实现此目的而执行的步骤是:
- 为
MySQL成功创建服务实例 -
将
MySQL的服务实例绑定到应用程序成功(见上面cf services命令结果)#cf 服务
命名服务计划绑定应用的最后一次操作
my-mysql-db cleardb spark agrisell-rest-app create succeeded -
成功推送我的应用,可以成功点击
REST API 在宿主应用上使用
cf enable-ssh agrisell-rest-app成功启用ssh-
使用
cf create-service-key my-mysql-db my-mysql-db-service-key创建服务密钥(创建后获取服务密钥的命令如下)# cf service-keys my-mysql-db
名称 我的-mysql-db-service-key
使用以下命令检索服务密钥和数据库凭据
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:ca7ad71f@us-cdbr-iron-east-01.cleardb.net:3306/ad_b509d7f388732d5?reconnect=true",
"username": "hello123"
}
-
配置
SSH隧道成功cf ssh -L 63306:us-cdbr-iron-east-01.cleardb.net:3306 agrisell-rest-app
-
通过
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.
第二种方法:
我尝试的第二种方法是通过MySQL Workbench 连接到PCF MySQL DB,它与MySQL 服务器安装捆绑在Windows 上。
我用它连接到我的本地MySQL DB。我修改了设置以将其指向主机、数据库并更改了凭据并尝试连接,但也不起作用。
第三种方法
我尝试的第三种方法是安装 Pivotal MySQL Web Database Management 工具,该工具来自 PCF 文档之一
https://docs.pivotal.io/p-mysql/2-2/use.html#mysqlweb
我将它安装在我的 Windows 10 机器上(没有将其部署到 PCF)并尝试登录,但也失败了。
第二种方法尝试但失败了
根据您的回复 Arun,我遵循了此处自述文件 (https://github.com/pivotal-cf/PivotalMySQLWeb) 中提到的所有说明,但它不允许我使用数据库 URL 和凭据登录到应用程序。第一次使用凭据admin/cfmysqlweb 登录有效,但需要数据库凭据和密码的登录页面将我发送回第一个登录屏幕,并显示“凭据错误”消息。截图如下。
在 PCF 上部署 PivotalMysqlWeb 并将其绑定到数据库实例
使用 admin/cfmysqlweb 凭据成功进行基本身份验证后现在显示的登录页面
在上面输入的数据库凭据并在提交时我被带回第一个登录页面(回到第一格)
【问题讨论】:
-
如果您使用的是 ClearDb,则不需要任何这些。 ClearDb 提供公共 IP,您可以通过这些 IP 从 Internet 上的任何位置访问您的服务。因此,您可以直接在本地 PC 上通过
mysql或 MySQL Workbench 与您的数据库进行交互。 -
如果您使用不同的 MySQL 提供程序,那么您的里程会有所不同。不同提供不同的句柄访问。在 PWS 上,如果您使用 Pivotal 托管的 MySQL,则这只允许从您的应用容器内部进行访问。这就是您需要使用
cf ssh并设置隧道或推送诸如 Pivotal MySQL Web 或 PHPMyAdmin 之类的应用程序来管理您的数据库的地方。 -
是的,我能够通过 MySQL Workbench 连接到 ClearDb。但是即使在正确指定了主机名、端口和凭据之后,我的应用程序也无法连接到它。此外,ClearDb 数据库也是旧版本的 MySQL 5.x。
标签: mysql cloud-foundry pivotal-web-services pcfdev