1. 确认连接信息

客户端工具通过CN连接数据库。因此连接前,需获取CN所在服务器的IP地址及CN的端口号信息。客户端工具可以通过任何一个CN连接数据库。

  1. 以操作系统用户omm登录安装有MPPDB服务的任一主机。执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。

  2. 使用“gs_om -t status --detail”命令查询集群各实例情况。

gs_om -t status --detail
[ Coordinator State ]node        node_ip         instance                                  state
-----------------------------------------------------------------------------
1  plat1 192.168.0.11  5001 /srv/BigData/mppdb/data1/coordinator Normal
2  plat2 192.168.0.12  5002 /srv/BigData/mppdb/data1/coordinator Normal
3  plat3 192.168.0.13  5003 /srv/BigData/mppdb/data1/coordinator Normal
  1. 确认端口号。
    在数据路径下的postgresql.conf文件中查看端口号信息(步骤2中获取到的路径)
cat /srv/BigData/mppdb/data1/coordinator/postgresql.conf | grep port
port = 25308    # (change requires restart)

2. 配置服务端远程连接

进行远程连接前,需要在所有部署了CN的机器上设置允许客户端访问数据库,并配置远程连接。

以下步骤需要在集群的每个CN所在主机上执行。

以操作系统用户omm登录CN所在主机,执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。

1. 配置客户端接入认证

如果主机需要远程连接数据库,必须在数据库系统的配置文件中增加此主机的信息,并且进行客户端接入认证。配置文件(默认名称为pg_hba.conf)存放在数据库的数据目录里。GaussDB支持如下三种认证方式:

基于主机的认证:服务器端根据客户端的IP地址、用户名及要访问的数据库来查看配置文件从而判断用户是否通过认证。
口令认证:包括远程连接的加密口令认证和本地连接的非加密口令认证。
SSL加密:使用VPP(通用协议平台)提供服务器端和客户端安全连接的环境。

配置客户端认证方式,允许客户端以“jack”用户连接到本机,此处远程连接禁止使用“omm”用户。例如,下面示例中配置允许IP地址为10.10.0.30的客户端访问本机。

gs_guc set -Z coordinator -N all -I all -h "host all jack 10.10.0.30/32 sha256"

参数说明

使用“jack”用户前,需先本地连接数据库,并在数据库中使用如下语句建立“jack”用户:CREATE USER jack PASSWORD 'Gaussdba@Mpp';
-Z coordinator表示实例类型为coordinator。
-N all表示集群的所有主机。
-I all表示主机的所有实例。
-h表示指定需要在“pg_hba.conf”增加的语句。
all表示允许客户端连接到任意的数据库。
jack表示连接数据库的用户。
10.10.0.30/32表示只允许IP地址为10.10.0.30的主机连接。此处的IP地址不能为集群内的IP,在使用过程中,请根据用户的网络进行配置修改。32表示子网掩码为1的位数,即255.255.255.255
sha256表示连接时jack用户的密码使用sha256算法加密。

这条命令在所有CN实例对应的“pg_hba.conf”文件中添加了一条规则,用于对连接CN的客户端进行鉴定。pg_hba.conf文件中的每条记录可以是下面四种格式之一

local     DATABASE USER METHOD [OPTIONS]
host      DATABASE USER ADDRESS METHOD [OPTIONS]
hostssl   DATABASE USER ADDRESS METHOD [OPTIONS]
hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]

因为认证时系统是为每个连接请求顺序检查pg_hba.conf里的记录的,所以这些记录的顺序是非常关键的

a.在配置“pg_hba.conf”文件时,请依据通讯需求按照格式内容从上至下配置记录,优先级高的需求需要配置在前面。GaussDB 集群和扩容配置的IP优先级最高,用户手动配置的IP请放在这二者之后,如果已经进行的客户配置和扩容节点的IP在同一网段,请在扩容前删除,扩容成功后再进行配置。b.若服务端pg_hba.conf文件配置了hostssl,postgresql.conf中必须开启SSL认证模式。c.靠前的记录有比较严格的连接参数和比较弱的认证方法。靠后的记录有比较宽松的连接参数和比较强的认证方法。d.一个用户要想成功连接到特定的数据库,不仅需要通过pg_hba.conf中的规则检查,还必须要有该数据库上的CONNECT权限。如果希望控制某些用户只能连接到指定数据库,赋予/撤销CONNECT权限通常比在pg_hba.conf中设置规则更为简单。e.对应集群外部客户端连接,trust为不安全的认证方式,请将认证方式设置为sha256。

常见异常

示例

TYPE  DATABASE        USER            ADDRESS                 METHOD"local" is for Unix domain socket connections only
#表示只允许以安装时-U参数指定的用户从服务器本机进行连接。
local   all             all                                     trust
IPv4 local connections:
#表示允许omm用户从10.10.0.50主机上连接到任意数据库,使用sha256算法对密码进行加密。
host    all           omm             10.10.0.50/32            sha256
#表示允许任何用户从10.10.0.0/24网段的主机上连接到任意数据库,使用sha256算法对密码进行加密,并且经过SSL加密传输。
hostssl    all             all             10.10.0.0/24            sha256
#表示允许任何用户从10.10.0.0/24网段的主机上连接到任意数据库,使用Kerberos认证方式。
host    all             all             10.10.0.0/24            gss         include_realm=1        krb_realm=HADOOP.COM

2. [可选]配置listen_addresses

如果是双平面部署,GaussDB 部署在数据库业务平面,远程连接的客户端在客户的业务网络。必须使GaussDB 的CN监听CN所在服务器的客户业务网络IP(由于部署在数据库业务平面,默认只监听数据库业务平面IP),远程客户端才能够连接GaussDB 的CN。使用如下命令查看CN目前的listen_addresses配置。

gs_guc check -Z coordinator -I all -c “listen_addresses”

expected guc information: plat1: listen_addresses=NULL: [/gaussdb/data/data_cn/postgresql.conf]
gs_guc check: plat1: listen_addresses='localhost, 192.168.0.100': [/gaussdb/data/data_cn/postgresql.conf]Total GUC values: 1. Failed GUC values: 0.
The value of parameter listen_addresses is same on all instances.listen_addresses='localhost, 192.168.0.100'

使用如下命令把要添加的IP追加到listen_addresses后面,多个配置项之间用英文逗号分隔。例如,追加IP地址10.11.12.13

gs_guc set -I all -Z coordinator -c "listen_addresses='localhost,192.168.0.100,10.11.12.13'"

执行如下命令重启集群

gs_om -t stop && gs_om -t start

3. 使用gsql连接

1. 本地连接数据库

  1. 以操作系统用户omm登录CN所在主机,执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。

  2. 数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。

执行如下命令连接数据库。

gsql -d postgres -p 25308

其中postgres为需要连接的数据库名称,25308为CN的端口号。请根据实际情况替换。连接成功后,系统显示类似如下信息:

gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.postgres=#

a. omm用户是管理员用户,因此系统显示“DBNAME=#”。若使用普通用户身份登录和连接数据库,系统显示“DBNAME=>”。

b. “Non-SSL connection”表示未使用SSL方式连接数据库。如果需要高安全性时,请使用用SSL进行安全的TCP/IP连接。

退出数据库。

\q

2. 远程连接数据库

1.完成远程连接配置,操作步骤参见配置服务端远程连接。
2.安装并配置GaussDB 200客户端工具。
3.数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。

gsql -d postgres -h 10.10.0.11 -U jack -p 25308 -W Gaussdba@Mpp

postgres为需要连接的数据库名称,10.10.0.11为CN所在的服务器IP地址,jack为连接数据库的用户,25308为CN的端口号,Gaussdba@Mpp为连接数据库用户jack的密码。

注意:不在同一网段时,-h指定的IP地址应为Manager界面上所设的“mppdb.coo.cooListenIp2”(应用访问IP)的取值。禁止使用omm用户进行远程连接数据库。

4. 使用psql连接

当前数据库支持使用开源PostgreSQL的客户端psql连接,连接参数与gsql类似。使用psql连接前请确认完成以下步骤:

export PATH=/opt/pgsql/bin:$PATH
/opt/pgsql为PostgreSQL的安装目录,psql存放在其安装目录下的bin文件夹。

添加PostgreSQL的lib库目录到环境变量LD_LIBRARY_PATH,确保psql执行时使用的是PostgreSQL的动态库。

export LD_LIBRARY_PATH=/opt/pgsql/lib:$LD_LIBRARY_PATH
/opt/pgsql/lib为PostgreSQL的lib库目录。

本地连接数据库时,需添加环境变量PGHOST,指向数据库guc参数unix_socket_directory的值。

a.确保执行psql的本地用户对该路径下的文件有读写权限。
b.如果没有读写权限,可使用-h 127.0.0.1连接数据库。

psql -h 127.0.0.1 -p 25308 -d postgres -U jack

postgres为需要连接的数据库名称,jack为连接数据库的用户,25308为CN的端口号。
注意:远程连接数据库时,在确认以上步骤的同时请确保完成远程连接配置

常见问题处理
authentication method 10 not supported
使用开源客户端碰到此问题,可能原因:数据库中存储的口令校验只存储了SHA256格式哈希,而开源客户端只识别MD5校验,双方校验方法不匹配报错。或者,是因为远程连接时-U传入的用户不存在。

a.数据库并不存储用户口令,只存储用户口令的哈希码。
b.早期版本(V100R002C80SPC300之前的版本)的数据库只存储了SHA256格式的哈希,并未存储MD5的哈希,所以无法使用MD5做用户口令校验。
c.新版本(V100R002C80SPC300及之后版本)的数据库当用户更新用户口令或者新建用户时,会同时存储两种格式的哈希码,这时将兼容开源的认证协议。
d.但是当老版本升级到新版本时,由于哈希的不可逆性,所以数据库无法还原用户口令,进而生成新格式的哈希,所以仍然只保留了SHA256格式的哈希,导致仍然无法使用MD5做口令认证。

要解决该问题,可以更新用户口令(ALTER USER);或者新建一个用户(CREATE USER),赋于同等权限,使用新用户连接数据库。

undefined symbol: pqsignal
使用客户端碰到此问题,可能原因:未将PostgreSQL的lib库目录添加到环境变量LD_LIBRARY_PATH

【GaussDB数据库----连接】相关推荐

  1. 通过公网连接GaussDB数据库实例

    文章目录 1. 通过公网连接GaussDB 1.1 实验介绍 1.1.1 关于本实验 1.1.2 实验目的 1.2 购买GaussDB数据库(可选) 1.3 公网IP绑定 1.3.1 购买弹性公网IP ...

  2. GaussDB数据库基础函数介绍-上

    目录 一.函数在数据库中的作用 二.GaussDB常用基础函数介绍与示例 1.数字操作函数 2.时间和日期处理函数 3.类型转换函数 4.数组函数 5.范围函数 6.窗口函数 7.聚集函数 8.安全函 ...

  3. 亚马逊计划明年推出云游戏服务,紧追微软谷歌;华为GaussDB数据库推出双分布式架构;腾讯擎天5G智慧灯杆助智慧城市服务升级……...

    戳蓝字"CSDN云计算"关注我们哦! 嗨,大家好,重磅君带来的[云重磅]特别栏目,如期而至,每周五第一时间为大家带来重磅新闻.把握技术风向标,了解行业应用与实践,就交给我重磅君吧! ...

  4. 华为周跃峰:揭秘“关于GaussDB数据库的五大谎言”

    11月15日,2019第九届数据技术嘉年华大会在北京召开,华为IT产品线副总裁.智能数据与存储领域总裁周跃峰受邀出席并发表主题演讲,围绕中国未来需要什么样的数据库.华为GaussDB数据库的发展历程, ...

  5. 华为云 GaussDB 数据库,会是新的国产之光吗?

    华为云 GaussDB 数据库,会是新的国产之光吗? 华为云数据库业务总裁苏光牛 7月20日,华为云TechWave技术峰会上,华为云数据库业务总裁苏光牛正式发布两大数据库新品,包括关系型数据库Gau ...

  6. 入选 Gartner 魔力象限,剖析华为云 GaussDB 数据库演进之路

    日前,国际知名调研机构Gartner发布了2020年全球云数据库魔力象限报告(<Magic Quadrant for Cloud Database Management Systems>) ...

  7. 华为 GaussDB 数据库十问

    自2019年5月15日正式发布以来,华为GaussDB数据库受到业界的广泛关注.针对客户和读者的反馈,我们整理了关于GaussDB数据库的十个热点问题,让您能够快速一览华为GaussDB数据的&quo ...

  8. 华为GaussDB数据库10个知识点,第7个你知道么?

    自2019年5月15日正式发布以来,华为GaussDB数据库受到了业界的广泛关注,成为了具有硬核技术色彩的「网红」之一. 今天,腾科教育小编就为大家带来粉丝互动专场,近距离一览GaussDB数据库的「 ...

  9. 华为GaussDB数据库

    目录 一.GaussDB: 全球首款AI-Native数据库 二.FusionStorage 8.0:业界性能第一的分布式存储 三.下载安装包 四.安装步骤 五.华为GaussDB数据库相关知识扩展 ...

最新文章

  1. __builtin__与__builtins__的区别与关系
  2. 为什么C++(感谢waterwalk翻译)
  3. 三个Python入门小项目
  4. linux环境cpp/c文件的makefile编写(caffe举例)
  5. 通过iscsi配置在aix上挂载存储设备
  6. 图像滤波与滤波器基础知识
  7. Mysql 如何通过binlog日志恢复数据
  8. linux arm寄存器,ARM寄存器总结
  9. powerdesigner中将表的name在生成建表sql时生成注释
  10. HTML5新特性之标签实战应用:超星尔雅平台
  11. 流处理和批处理框架的异同
  12. 多宽带联网(二) OpenWrt中利用MWAN3负载均衡实现带宽叠加
  13. vs修改项目属性无效的原因
  14. JAVA#泛型'学习札记
  15. (九)统计学习方法 | 隐马尔可夫模型
  16. (论文加源码)基于DEAP的脑电情绪识别(CNN,RNN和两种不同的注意力机制)
  17. hihoCoder挑战赛12 顺子(hihocoder 1177)
  18. 个人开发者一分钟接入微信支付宝支付
  19. SOLIDWORKS物料编码工具SolidKits Coding
  20. 爬取百度贴吧图片-python-requests

热门文章

  1. ASP.NET运行原理和运行机制
  2. 远控免杀从入门到实践(3)-代码篇-C/C++
  3. CentOS 5.3启动后报错——ata1.00: error
  4. [BUUCTF misc]Game
  5. jQuery使用addClass添加样式不生效
  6. Linux网络服务(中)FTP服务配置
  7. MAC-XXL_JOB学习踩坑记录-Failed to create parent directories for [/data/applogs/xxl-job/xxl-job-admin.log
  8. mfc随记:基于vs2010创建MFC ActiveX控件并测试
  9. linux目录修改为英文
  10. ceph15(Octopus)问题排查处理 - centos8