我开发了一个使用JSP,Spring Security,MySql的应用程序。我把它部署在Cloudfoundry上。但只是战争文件,我绑定了mysql服务。但是我还必须配置MySQL数据库,该数据库由两个表组成,新用户和我自己的数据库中的所有表。当我在本地主机上测试我的应用程序时,我准备了在 MySQL 命令窗口中运行手动脚本的数据库。问:如何在CloudFoundry中进行相同的配置?我可以以同样的方式手动运行所有命令和脚本或以某种方式导出数据库吗?如果是,如何做到这一点。现在在这里写什么而不是本地主机?
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/security_filter" />
谢谢
Caldecott(vmc tunnel(是访问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 存在一些东西(
希望对您有所帮助,如果您对红宝石问题没有运气
您需要创建数据库的 mysqldump。获得 mysqldump 文件后,您可以使用 caldecott 并执行到 MySQL 服务的 vmc 隧道。在Cloud Foundry上与MySQL服务建立连接后,您需要使用mysql命令手动将mysqldump文件导入到服务中。
有关如何使用 vmc 隧道,请访问文档站点:http://docs.cloudfoundry.com/tools/vmc/caldecott.html