当前位置: 首页 > 知识库问答 >
问题:

如何在IBM Liberty Server中设置Greenplum数据源

崔单弓
2023-03-14

我有一个IBM WebSphere Liberty服务器和一个Greenplum数据库。我希望liberty server将Greenplum与SSL连接起来。

这是我在server.xml设置:

<dataSource id="GreenplumDataSource" jndiName="jdbc/greenplum" type="javax.sql.DataSource">
    <jdbcDriver libraryRef="GreenplumLib" javax.sql.DataSource="com.pivotal.jdbcx.GreenplumDataSource"/>
    <properties databaseName="postgres" serverName="10.x.x.1" portNumber="5432" user="x" password="x" URL="jdbc:pivotal:greenplum://10.x.x.1:5432;DatabaseName=postgres;EncryptionMethod=SSL;CryptoProtocolVersion=TLSv1.2;ValidateServerCertificate=false"/> 
</dataSource>
<library id="GreenplumLib">
    <file name="/data/IBM/WebSphere/Liberty/usr/lib/PROGRESS_DATADIRECT_JDBC_DRIVER_PIVOTAL_GREENPLUM_5.1.4.000275.jar"/>
</library>

一个简单的应用程序使用这个JNDI连接Greenplum。我从应用程序中得到一个错误:

尝试获取连接:=jdbc/Greenplum!!!没有获得连接=java.sql.SQLInvalidAuthorizationSpecException:[Pivotal][Greenplum JDBC驱动程序][Greenplum]没有主机“10.161.113.15”、用户“gpadmin”、数据库“postgres”、SSL关闭的pg_hba.conf条目。DSRA0010E:SQL状态=28000,错误代码=0

数据源似乎没有使用SSL连接Greenplum。我的设置有问题吗?

共有3个答案

曹沛
2023-03-14

谢谢你的回复。我已经解决了这个问题。我之前设置了错误的数据源类型和驱动程序类。以下是正确的设置:

<dataSource id="GreenplumDataSource" jndiName="jdbc/greenplum" type="java.sql.Driver">
    <jdbcDriver libraryRef="GreenplumLib" javax.sql.DataSource="com.pivotal.jdbc.GreenplumDriver"/>
    <properties databaseName="postgres" serverName="10.x.x.1" portNumber="5432" user="x" password="x" URL="jdbc:pivotal:greenplum://10.x.x.1:5432;DatabaseName=postgres;EncryptionMethod=SSL;CryptoProtocolVersion=TLSv1.2;ValidateServerCertificate=false"/>
</dataSource>
薄兴昌
2023-03-14

听起来问题是Greenplum的pg_hba.conf文件尚未编辑以允许此主机连接(尽管上面列出的连接字符串可能存在问题)。您应该在Greenplum的$MASTER_DATA_DIRECTORY中为pg_hba.con添加一行,如下所示:

托管所有gpadmin10.161.113.0/24md5

这将为gpadmin连接10.161.113子网的所有数据库设置连接。编辑文件后,运行gpStop-u以更新集群中的配置。

作为一个实用说明,这是尝试连接到postgres数据库。这不是一个好主意,因为它管理(我相信)系统曲库数据库。您应该创建一个单独的数据库并尝试连接到它。吉姆

端木承业
2023-03-14

该驱动程序支持的属性的文档没有表明其数据源具有URL属性,因此我怀疑您在URL属性下放置的所有内容都被忽略了。

尝试分别指定每个属性,如下所示,

<dataSource id="GreenplumDataSource" jndiName="jdbc/greenplum" type="javax.sql.DataSource">
    <jdbcDriver libraryRef="GreenplumLib" javax.sql.DataSource="com.pivotal.jdbcx.GreenplumDataSource"/>
    <properties databaseName="postgres" serverName="10.x.x.1" portNumber="5432" user="x" password="x" encryptionMethod="SSL" cryptoProtocolVersion="TLSv1.2" validateServerCertificate="false"/>
</dataSource>

希望这能奏效。JDBC驱动程序文档并不清楚列出的属性是否都属于其数据源或DriverManager,或者两者都属于。如果您最终需要通过DriverManager进行Liberty连接,您可以在最新版本中对其进行配置,但让我们先试试数据源方法,看看它是否有效。

 类似资料:
  • 问题内容: 我是Python和Django的新手。 我正在使用PostgreSQL数据库引擎后端配置Django项目,但是每个数据库操作都出现错误。例如,当我跑步时,我得到: 有人可以告诉我发生了什么吗? 问题答案: 你需要安装psycopg2Python库。 安装 下载http://initd.org/psycopg/,然后将其安装在Python PATH下 下载后,轻松解压缩tarball并:

  • 我需要在中为两个设置,目前看来只有一个设置是可能的,您可以选择哪个数据源。

  • 问题内容: 我正在使用新版本(3.0.0)。CodeIgniter的问题,我遇到了一个新问题,我的会话无法正常工作。我的意思是,控制器中的代码是正确的,因为没有错误,但是,当我尝试在视图中打印PHP变量时,什么也没有。 我在MySQL服务器中检查了我的表,什么也没有,我现在不出什么问题了。我把我的代码config.php。(我不太了解这个新版本中的很多内容) 我必须在“ make”会话中添加第一行

  • 问题内容: 我有一个带有属性的div 。我想更新它的价值;如果我使用,它不会改变吗?我只需要使用吗? 我在HTML5和jQuery之间感到困惑吗?请指教。谢谢! 编辑:更新为,但HTML仍未更新。 问题答案: 的HTML JS 从参考: jQuery本身使用该方法以“事件”和“句柄”的名称保存信息,并且还保留任何以下划线(_)开头的数据名称供内部使用。 应当注意,jQuery 不会更改HTML中的

  • 问题内容: 这个问题似乎让人难以置信,但我无法弄清楚。我知道您可以在python中检查数据类型,但是如何根据数据类型设置条件呢?例如,如果我必须编写一个对字典/列表进行排序并将所有整数加起来的代码,那么如何隔离搜索以仅查找整数? 我想一个简单的例子看起来像这样: 那么对于第3行,我将如何设置这样的条件? 问题答案: 怎么样, 但更干净的方法就是

  • 我目前正在用下面的代码从Google表单中获取所有值,但是在从那里获取所有值之后,现在如何在另一个表单中设置它们呢? var ss=电子表格应用程序。openById(ID); var值=ss。getDataRange()。getValues(); var ss1=电子表格应用程序。openById(ID1); 我没能做到,有没有办法用for循环做到?