【问题标题】:how to configure connection to the database in clouds services如何在云服务中配置与数据库的连接
【发布时间】:2013-05-21 09:57:10
【问题描述】:

我已经在网上冲浪了两天,寻找一种更好的方法来配置我要上传到AppFog 的应用程序,以便它成功连接到云中的 mysql 数据库。

我已经创建了 mysql 服务并将它绑定到应用程序。我还使用 linux 中的本地控制台(使用 af tunnel mydatabase)创建了表并在其上放置了一些数据

但我的应用程序似乎没有找到数据库。我的应用程序使用JDBC ...我使用了从控制台(屏幕中的那些有趣字符)给我的数据库usernamepassworddatabasename,但它没有工作。所以我把我自己的凭据,仍然没有成功......

我尝试使用url,它指向我的应用程序在控制台上的端口,但仍然......实际上,我输入了控制台上显示的详细信息以连接到云中的数据库部署后……但我的应用似乎找不到我的数据库及其表……

不知道怎么回事……

请帮忙..

更多:

这是我用来尝试这种连接的代码:

    try {
            String connectionURL = "jdbc:mysql://http://someapp.aws.af.cm:10000 /OnlinePassword";   

            Class.forName("com.mysql.jdbc.Driver");

            conn = DriverManager.getConnection(connectionURL, USER, PASS);
            statement = conn.createStatement();
        }

【问题讨论】:

    标签: database url jdbc service appfog


    【解决方案1】:

    使用名为 VCAP_SERVICES 的 appfog 环境变量来自动检测您的 MySQL 数据库凭据和连接信息。您可以利用它来显示所有 JSON 格式的信息,并使用它将您的应用程序连接到 MySQL 数据库。你可以试试这个。

    • 首先创建一个 servlet 并使用上下文属性检索您的数据库连接,如下所示:

      public class DbInfoServlet extends HttpServlet 
      {
        public void doGet(HttpServletRequest request,HttpServletResponse response) 
            throws ServletException, IOException 
        {
          request.setAttribute("jsonContent", java.lang.System.getenv("VCAP_SERVICES"));
          request.getRequestDispatcher("/index.jsp").view.forward(request, response);
        }
      }
      
    • 然后创建一个 index.jsp 文件来显示您的 DB 连接信息,如下所示:

      <body>
        <p>
          <!-- Click here to display DB info -->
          <a href="/DbInfoServlet"></a>
          <!-- Display of your DB connection and credentials info is here. This will show in JSON document format
           -->
          <c:out value="${jsonContent}" />
        </p>
      </body>
      
    • 使用 JSON 文档内容中的主机名(即 IP)、端口、名称(即数据库名称)、用户名、密码参数来修改您的 JDBC 连接代码,如下所示:

      try {
            String connectionURL = "jdbc:mysql://hostname:3306/name";   
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(connectionURL, username, password);
            statement = conn.createStatement();
          }
      
    • 如果上述方法不起作用,只需确保您使用的是最新版本的 MySQL-connector-java jar 文件即可。

    玩得开心!

    【讨论】:

    • 和平胸罩...我记得你来自 Liesbeek(IT 代表)。
    • Lekhobolo,你在什么项目上使用了 Appfog,因为我和我的这个男孩 Kholofelo,Appfog 向我们展示了火焰。有一段时间了,希望你们都好久不见。不错的简单解决方案。
    • 我还记得你来自 Liesbeeck.... 刚刚在 LinkedIn 上查看了你的个人资料,我就像“yeeeeeah 我认识这个人”!谢谢你的帮助,嘿......真的很真诚......再次感谢
    猜你喜欢
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多