首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pentaho无效的JNDI连接无法创建到数据库服务器的连接

问Pentaho无效的JNDI连接无法创建到数据库服务器的连接
EN

Stack Overflow用户
提问于 2014-10-01 05:57:44
回答 3查看 4.2K关注 0票数 0

我使用JNDI方法将几个MySQL数据库服务器连接到我的Pentaho (CE5.0.1),到目前为止还可以正常工作,除了这个服务器。其中一台MySQL服务器出现故障,因此我将JNDI连接MySQL更改为连接到新服务器,但是Kettle没有对此更改进行重新编码并按以下方式抛出错误:

连接到数据库数据库名的错误:在试图连接到数据库无效的JNDI连接kidr_db_5 :无法创建到数据库服务器的连接时发生了错误。尝试重新连接3次。放弃吧。当试图连接到数据库无效的JNDI连接kidr_db_5 :未能创建到数据库服务器的连接时发生了kidr_db_5错误。尝试重新连接3次。放弃吧,

我可以通过本机(JDBC)连接方法直接从Kettle连接到新服务器,但不能只通过JNDI连接这个新服务器。来自JNDI的Rest DB连接工作正常。请引导我这里出了什么问题?是不是漏掉了什么?还是一只虫子?

EN

回答 3

Stack Overflow用户

发布于 2014-12-23 13:37:34

我已经解决了这个问题,很抱歉最近回答了这个问题。问题是,密码中几乎没有包含#符号的特殊字符;但在宾得语中,#是注释行,所以密码的一部分似乎是对宾得的注释。

因此,结论是,不要在JNDI配置或Kettle配置文件中使用注释以外的#。

票数 1
EN

Stack Overflow用户

发布于 2015-08-24 16:51:15

快消息。不完全是水壶五旬节的臭虫。Bug(如果不是故意的话)在“simple”库中。Kettle使用库simple来提供jndi上下文。虽然java.util.Properties类的oracle文档(http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html)声明,注释行必须由'#‘符号启动,并且它必须是行中的第一个符号,但是库“simple”--使用自己的加载程序,称为org.osjava.sj.loader.util.CustomLoader。这就是臭虫居住的地方。

代码语言:javascript
复制
int idx = line.indexOf('#');
// remove comment
if(idx != -1) {
    line = line.substring(0,idx);
}

因此,如果你使用简单的-jndi,那么注释就是行中“#”符号之后的所有内容。

票数 0
EN

Stack Overflow用户

发布于 2017-06-02 10:40:39

使用.xml而不是.properties

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<something>
 <connection-name>
  <type>javax.sql.DataSource</type>
  <driver>org.postgresql.Driver</driver>
  <url>jdbc:postgresql://localhost:5432/database</url>
  <user>user</user>
  <password>#secret#</password>
 </connection-name>
</something>

我的文件名为connections.xml,在上面的示例中,您可以参考pdi中的connections/ then /connection-name。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26134971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档