PostgreSQL/Greenplum/ArteryBase常见问题解决方法

2244
1

yangm 数据达人Lv4

发表于2020-12-30 13:56

楼主
本帖最后由 yangm 于 2020-12-30 14:35 编辑

1.Could not connectto server
错误信息为:
could not connect to server: Connection refused
           Is the server running on host "172.21.10.130" and accepting
           TCP/IP connections on port 5432?
通常是因为数据库没有连接的权限导致的
注意修改两个文件
1pg_hba.conf
此文件中需要添加允许当前客户端所在的机器连接的权限,一般格式如下:
# IPv4 local connections:host:
host    all             all             127.0.0.1/32            identhost
host    all             all             0.0.0.0/0               md5
2postgresql.conf
需要修改建监听的端口号
格式如下:
*listen_addresses='localhost'
listen_addresses = '*'

2.column am.amcanorder doesnot exist
jdbc驱动版本不对,需要更换为适合当前数据库服务器版本的 jdbc
此问题在使用 ArteryBase 时出现多次。
替换方法:将下载好的驱动放到WEB-INF\lib文件夹中,删除文件夹中自带的驱动,清理缓存,重启。

3.使用默认schema,或未指定schema导致资源丢失
可在 url 中添加currentSchema=xxx 来指定所需使用的 schema
目前已知的,PostgreSQLArteryBase的驱动可以,Greenplum的驱动此参数无效
如果用pg驱动连接 gp环境,此参数也是有效的。
其他方式可参见连接池的配置文件中 default_schema initsql的说明。
例:greenplum:set search_path to xxx   
      oracle:alter session set current_schema=xxx
      PostgreSQL:currentSchema=xxx
可使用select current_schema()查看当前使用的schema。
如果schema是大写的,配置url时,应该需要使用界定符,如果表名是大写的,查询时也需要使用界定符
如:schema是大写的SCHEMA01
jdbc:postgresql://localhost:5432/mydatabase?currentSchema="SCHEMA01"
表t1是小写的,表T2是大写的,在数据库管理那边,进行查询时正确的写法
select * from "SCHEMA01"."t1"
select * from "SCHEMA01"."T2"
select * from t1
select * from "T2"
注意:不能select * from T2来查询T2,因为T2表名是大写,必须加双引号。

4.greenplum 驱动问题
Greenplum 的驱动和数据库之间不是一一对应的关系,某个版本的驱动,是可以兼容多个数据库版本的。
同一个版本号的驱动,也会有发布时间的差别,即小版本号的区别。
现在我们常用的 greenplum-5.1.4.jar,有2015年发布的,也有 2017年发布的。
遇到此类驱动,建议数据库驱动的发布日期要晚于数据库的发布日期。
例如,数据库的打包时间是2016年,那么就使用 2017年的驱动,而不是2015年的。
替换方法:将下载好的驱动放到WEB-INF\lib文件夹中,删除文件夹中自带的驱动,清理缓存,重启。

5.Unexpected mismatch ofclient_encoding and server_encoding
Greenplum 中出现该报错。原因是客户端编码和数据库端编码不一致。
该错误信息的资料,针对 Greenplum 的较少,针对PostgreSQL 的较多,但针对 PostgreSQL 的,一般是连接成功以后做写入数据的操作才出现的,或者是设计到乱码问题。
Greenplum 中,是在创建连接的时候报错,所以无法通过创建连接以后使用SQL修改session级别参数的方式调整。
Greenplum jdbc 的文档未找到,不确定URL中参数如何设置。
项目上遇到该问题的解决方法是,修改了用户的客户端编码。推测为 client_ecoding 的值,修改为和客户端保持一致。















最近看过此主题的会员

chestnut

pandabuxizao

1个回答

只看楼主

张瑞阿 初学数据Lv2

发表于2023-9-21 16:21

只看该作者

取消 关注该作者的回复

沙发

大佬。PGSQL有没有遇到ABI生成的SQL排序后分页无序的问题

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

渠道咨询电话:137-0120-6790

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号