java - 部署 Jenkins 时数据库服务器问题

标签 java mysql tomcat jdbc jenkins

我为 Tomcat(ip 是 x.x.x.10)、web(ip 是 x.x.x.11)和 db(ip 是 x.x.x.12)创建了 3 个服务器。这 3 个是手动协调的。我授予对 Tomcat 服务器的完全访问权限以在数据库服务器中创建表。如果我手动从 tomcat 服务器连接到数据库服务器,它工作正常。

然后我创建了一个 Jenkins 作业用于在 Tomcat 服务器上部署 war。

在我的 svn 服务器中,我将数据库服务器 (x.x.x.12) 信息保存在“jdbc.properties”文件中并提交。我的“jdbc.properties”文件如下所示。

jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.dialect = org.hibernate.dialect.MySQLDialect
jdbc.databaseurl = jdbc:mysql://x.x.x.12:3306/epsilon
jdbc.username = mysql 
jdbc.password = mypassword

然后我在 Jenkins 上运行作业以构建 war 并在 Tomcat 服务器上部署。 Jenkins 没有显示任何错误并且作业成功运行。

但是在Tomcat服务器catalina.log文件中显示没有权限在x.x.x.10上创建数据库。但我将 x.x.x.12 保存在“jdbc.properties”文件中。为什么 Tomcat 服务器 assumig 作为数据库服务器是它自己,为什么它不考虑“jdbc.properties”文件。

我删除了 Jenkins 工作区和作业插件。但问题还是一样。

最佳答案

您应该检查您的构建过程和生成的二进制文件,以确保应用程序包(ear、war 等)准确包含您粘贴的属性文件,而不是本地开发版本。

例如,如果您有一个基于配置文件(本地、AVE、UAT 等)的 Maven 项目,并且您构建了一个指定本地配置文件而不是任何其他配置文件的二进制文件,那么在尝试部署时您会发现类似的效果它到您的 tomcat 服务器。

关于java - 部署 Jenkins 时数据库服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32482361/

相关文章:

mysql - 查找该表位于哪个数据库中

mysql - 如何在 SQL 中按日期对表进行排序

java - 使用java从e​​xcel文件中读取单元格位置并设置具有特定位置的值

java - WebSocket握手:意外的响应代码:404-Tomcat 8

java - 如何从其他应用程序监控android studio中的网络搜索

java - 无法在多线程的正确文件上写入日志?

java - 验证表查看器行并显示错误

java - 访问 Spring Session 范围的代理 Bean

mysql - vb.net 中的查询错误返回不正确的 double 值

java - Java 应用程序的 Web 用户界面