0

我使用 JSP、Spring Security、MySql 开发了一个应用程序。我将它部署在 Cloudfoundry 上。但只是war文件和我绑定了mysql服务。但是我还必须配置由两个表组成的 MySQL 数据库,新用户和它都在我自己的数据库中。当我在 localhost 上测试我的应用程序时,我准备了在 MySQL 命令窗口中运行手动脚本的数据库。问题:如何在 CloudFoundry 中进行相同的配置?我可以以同样的方式手动运行所有命令和脚本或以某种方式导出数据库吗?如果是,如何做到这一点。现在在这里写什么而不是本地主机?

 <property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/security_filter" />

谢谢你

4

2 回答 2

1

Caldecott(vmc 隧道)是访问您的 cloudoundry 数据库的正确方法(对我来说它有效,我使用的是 ruby​​ 1.8):http ://docs.cloudfoundry.com/tools/vmc/caldecott.html

如果这对你不起作用,你将不得不手动做一些事情(更难):

  • 创建一个连接到 mysql 数据库的示例 jsp/servlet 应用程序(检索连接字符串、用户名和密码作为来自用户的输入)。然后它将只对数据库运行 sql 语句(sql 语句也将由用户输入)
  • 将此应用程序捆绑在您的战争中
  • 现在您必须检索数据库连接字符串/用户名和密码。您可以从环境变量VCAP_SERVICES中检索它们。只需将其记录在启动侦听器中(例如 ServletContextListener)
  • 部署您的战争并从服务器获取日志(vmc 日志应用程序名称)。获取连接字符串、用户名和密码
  • 登录到您的应用程序并使用您在上一步中收集的数据库信息使用您的数据库应用程序访问数据库

请注意,这是非常危险的方法。只需确保保护此数据库应用程序或在初始导入后将其从您的战争中删除并重新部署应用程序

作为最后一点,您可以检查这样的数据库控制台应用程序是否已经存在,这样您就不必创建自己的(例如 grails 有一个很好的应用程序用于此http://grails.org/plugin/dbconsole。也许存在一些东西jsp/servlet)

如果您对红宝石问题不满意,希望对您有所帮助

于 2012-05-08T19:15:43.393 回答
0

您需要创建数据库的 mysqldump。一旦你有了 mysqldump 文件,你就可以使用 caldecott 并执行 vmc 隧道到你的 MySQL 服务。在 Cloud Foundry 上与 MySQL 服务建立连接后,您需要使用 mysql 命令手动将 mysqldump 文件导入到您的服务中。

有关如何使用 vmc 隧道,请访问文档站点:http ://docs.cloudfoundry.com/tools/vmc/caldecott.html

于 2012-05-09T19:27:17.813 回答