【问题标题】:boxfuse dev db not provisioned correctlyboxfuse dev db 未正确配置
【发布时间】:2016-04-14 10:37:15
【问题描述】:

我刚开始使用 boxfuse,似乎无法找到一种方法来配置我的开发数据库。

在我的 boxfuse.yml 中有(用于数据库部分):

database:
  # the name of your JDBC driver
  driverClass: com.mysql.jdbc.Driver

  # the username
  user: root

  # the password
  password: <password>

  # the JDBC URL
  url: jdbc:mysql://10.0.0.84:3306/dmsdb

  # any properties specific to your JDBC driver:
  properties:
    charSet: UTF-8
    hibernate.dialect: org.hibernate.dialect.MySQLInnoDBDialect

  # the maximum amount of time to wait on an empty pool before throwing an exception
  maxWaitForConnection: 1s

  # the SQL query to run when validating a connection's liveness
  validationQuery: "/* MyApplication Health Check */ SELECT 1"

  # the minimum number of connections to keep open
  minSize: 8

  # the maximum number of connections to keep open
  maxSize: 32

  # whether or not idle connections should be validated
  checkConnectionWhileIdle: false

如果我尝试运行它(boxfuse run),我的应用程序根本无法运行。

boxfuse 信息产生以下内容:

oxfuse 客户端 v.1.18.7.938 版权所有 2016 Boxfuse GmbH。保留所有权利。

帐号:mlr11 (mlr11)

关于开发环境中 mlr11/dms-service 的信息:

App Type    : Single Instance with Zero Downtime updates
App URL     : http://127.0.0.1:8082
DB Type     : MySQL database
DB URL      : jdbc:mysql://localhost:3306/boxfuse-dev-db
DB Host     : localhost
DB Port     : 3306
DB Database : boxfuse-dev-db
DB User     : boxfuse-dev-db
DB Password : boxfuse-dev-db
DB Status   : available

这与我的预期非常不同。 URL、数据库、用户、密码)与我的 boxfuse.yml 文件不匹配。

我错过了什么。我知道这一定很简单。我进行了各种搜索并阅读了几次文档。我似乎无法找到问题所在。任何指针将不胜感激。

【问题讨论】:

    标签: cloudcaptain


    【解决方案1】:

    根据您发布的配置文件,我假设这是一个 dropwizard 应用程序。

    由于您的 Boxfuse 应用程序配置为使用 MySQL 数据库,因此当您首次在其中部署应用程序时,Boxfuse 会自动在每个环境中预置一个数据库。在您的情况下,您可以在问题中发布的输出中看到开发环境中该数据库的连接信息。

    Boxfuse 将这些值(db url、用户、密码...)公开为环境变量(https://cloudcaptain.sh/docs/databases#envvars)并自动配置您的框架(我假设是 Dropwizard)以使用这些值而不是配置文件中包含的那些。它将通过将 -Ddw.database.url=$BOXFUSE_DATABASE_URL -Ddw.database.user=$BOXFUSE_DATABASE_USER -Ddw.database.password=$BOXFUSE_DATABASE_PASSWORD 作为参数传递给 JVM 来实现。

    还要在 VirtualBox GUI 中仔细检查您的 VirtualBox 安装是否功能齐全并且能够启动 VM,并且 Boxfuse Dev VM 和您的应用程序实例均已正确启动。

    【讨论】:

    • 我只列出了 2 个虚拟机,并且两个虚拟机都在运行。我有 boxfuse-dev-hdd-2016.02.09_mlr11-dms-service 和 vb-5012d157。这就是我在 Oracle VM VirtualBox Manager 中看到的全部内容。我最初在启动 VM 时遇到问题,必须启用 VT-x 才能使其工作。我需要在运行 boxfuse 的机器上安装 MySQL 服务器吗?目前尚未安装,MySQL 目前在另一台计算机上运行。
    • 没有。 Boxfuse Dev VM 带有预安装和完全配置的 MySQL。您的应用程序是否引发异常?如果是这样,请在此处发布。 (您可以使用boxfuse logs 获取日志)。另外,您使用的是哪个版本的 Dropwizard?
    • 我使用的是 dropwizard 0.9.1。我更改了数据库中的一些权限,现在我收到了完全不同的消息。我现在得到的那些很有希望(“!java.sql.SQLWarning:表'boxfuse-dev-db.addrstate'不存在”),我知道如何处理它们。昨天我收到有关连接相关事情的消息。我会玩这个多一点。现在我知道那里有一个新的数据库。我将创建我的表并将我的数据移到那里。
    • 谢谢阿克塞尔。借助我从您那里获得的信息和数据库中的简单权限更改,我能够启动开发环境。我现在遇到 AWS 问题,但我需要在发布任何问题之前进行尽职调查。
    猜你喜欢
    • 2017-04-11
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 2020-04-04
    • 2017-08-19
    相关资源
    最近更新 更多