暂无图片
暂无图片
2
暂无图片
暂无图片
1
暂无图片

openGauss之数据库连接

原创 周波 云和恩墨 2022-05-10
5918

使用gsql客户端连接数据库

(1)确认连接信息

需要知道待连接的数据库服务所在主机的IP地址和监听端口信息:
image.png

从图中不难发现:
OG1:内部存储IP为192.168.1.100  端口号:15400(主库)
OG2:192.168.1.101     端口号:15400 (从库)

还可以通过如下命令查看postgresql.conf配置文件,从而得知实例的端口信息:
cat /data/og1/postgresql.conf | grep port

(2)gsql本地连接(omm用户进行操作)

当我们知道数据库节点的端口号和IP地址之后,就可以连接数据库了,openGauss数据库安装成功之后默认创建名为postgres的数据库,第一次可以连接它:
image.png



===========================================================
补充
如果你想更改omm的密码,执行如下命令:

alter role omm identified by "Zhougood123@" replace  "Zhou@123";
复制

输入上面命令之后报错:
ERROR: The old password is invalid.


提示原密码错误,在安装时,输入的密码就是’Zhougood123@’,感觉没问题,尝试了是不是双引号的问题,确实不是;后来再看下语法,研究它的含义,是不是旧密码名和新密码位置写反了,一尝试就对了,果然是密码写反了。语法如下:

alter role omm identified by  '新密码' replace  '旧密码';	
//单引号,双引号都可以。
复制

image.png

输入:\q退出gsql工具。

===========================================================



(3)远程连接

1)创建普通用户

远程连接禁止使用数据库初始化用户连接,所以先本地连接并创建一个普通用户,用来进行远程连接:

gsql -d postgres -p 15400;
复制

创建用户的语法:

create user jack password "Test@123";
复制

输入\q退出。

2)添加客户端认证策略:

a,再打开一台虚拟机:主机名:zbm IP:10.0.0.10,做远程连接测试:

gs_guc set -N all -I all -h "host all jack 10.0.0.10/24 sha256";
//(实质是在配置文件pg_hba.conf中添加一条规则)
复制

b,在zbm主机上安装gsql客户端:
由于zbm主机安装过mogdb,所以zbm主机上是有gsql工具的,只需要切换到zbm主机上的omm用户即可使用gsql。


c,如果没有则需要下载安装包
root用户身份登录到客户端主机

mkdir /tmp/tools	//安装包存放路径
复制

d,获取相应的工具包,并上传到/tmp/tools下,并解压
连接工具包:openGauss-2.1.0-CentOS-64bit-Libpq.tar.gz

cd /tmp/tools
tar -zxvf openGauss-2.1.0-CentOS-64bit-Libpq.tar.gz
复制

e,将数据库主节点的数据库安装目录下的bin目录拷贝到客户端/tmp/tools下:

[root@OG1 ~]# scp -r /opt/huawei/install/app/bin root@10.0.0.10:/tmp/tools
复制

f,设置环境变量

vim ~/.bashrc
export PATH=/tmp/tools/bin:$PATH
export LD_LIBRARY_PATH=/tmp/tools/lib:$LD_LIBRARY_PATH
source ~/.bashrc
复制
3)执行连接
gsql -d postgres -p 15400 -U jack -W Test@123 -h 10.0.0.100
复制


===========================================================
报错

[root@zbm ~]# gsql -d postgres -p 15400 -U jack -W Test@123 -h 10.0.0.100
gsql: could not connect to server: Operation now in progress
	Is the server running on host "10.0.0.100" and accepting
	TCP/IP connections on port 15400?

复制

无法连接服务器,提示检查:数据库服务器是否运行在10.0.0.100主机上,并且在端口15400上接受远程连接。

解决过程
1.网络是否连通:经过ping,网络是连通的
2.数据库服务是否开启,连接信息是否一致:开启了且一致
3.在数据库主节点使用jack用户进行本地连接
gsql -p 15400 -d postgres -U jack -W Test@123
确实可以登录,说明用户名,密码和端口号信息都是正确的
4.说明主机IP地址出现了问题。
分析:数据库主节点的IP确实是10.0.0.100(外网IP),或者数据库主节点不支持10.0.0.100进行远程连接
5.查看数据库配置文件postgresql.conf

vim /data/og1/postgresql.conf
经查看:
listen_addresses = 'localhost,192.168.1.100'
数据库主节点监听地址为127.0.0.1和192.168.1.100,怪不得无法连接
修改成如下值,也就是添加10.0.0.100这个地址:
listen_addresses = 'localhost,192.168.1.100,10.0.0.100'
复制

保存退出,两个节点都要修改。并重启数据库:
gs_om -t restart
然后再次连接,就成功了。

使用下面这个命令也可以查看相应端口监听的地址:
netstat -lntup | grep 15400
image.png


总结
  当连接的基本信息都满足之后,都无法连接,说明数据库有什么连接限制之类的。这时不妨看一下数据库的配置文件:pg_hba.conf和postgresql.conf.
  那为什么不能用192.168.1.100这个地址进行连接呢?因为ping都ping不通,谈何连接。这个地址是内网IP,而且客户端与它不在同一个网段。
  这时我会想到,用从库使用内网进行远程连接:
image.png
  openGauss数据库禁止使用trust方式进行远程连接,可以对/data/og1/pg_hba.conf配置文件做一些修改,将trust改为sha256,如下:
将:host all all 192.168.1.101/32 trust
改为:host all all 192.168.1.101/32 sha256
  保存退出。并重启数据库服务
gsql -t restart
  然后就可以使用从库远程连接主库了:
image.png

===========================================================

最后修改时间:2022-08-15 15:01:51
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

筱悦星辰
暂无图片
1年前
评论
暂无图片 0
人生宝贵,要把精力放到美好的事物上,比如体验生活的乐趣、感受天地的无垠,只有你自己变好了,世界才会变好。
1年前
暂无图片 点赞
评论