openGauss数据库在CentOS 7 中的单机部署与配置

部署

版本选择

通过openGuass官网下载地址 ,我们可以看到它支持x86_64Aarch64两种平台,又分成openEuler 22、openEuler 20、Centos 7以及Docker 版本。

进入CentOS 7标签,看到又分成企业版、轻量版、极简版与分布式镜像版。

本文只讨论CentOS 7系统,所以下载的是x86_64平台的CentOS 7 的轻量版中的6.0.1版本。(轻量版相比企业版,少了集群管理工具。)

上传到主机

openGauss安装与运行的用户不能是root。

所以我们新建一个用户user1,然后把openGauss-Server-6.0.1-CentOS7-x86_64.tar.bz2上传到CenOS 7的主机上,解压到user1的$HOME目录中。

之后我们以user1用户登录,就会发现当前目录(即$HOME)下是从openGauss安装包解压出来的全部文件。

目录列表如下:

[user1@localhost ~]$ ls  
bin  data  etc  include  jre  lib  logs  share  simpleInstall  version.cfg

我们进入simpleInstall:

[user1@loaclhost ~]$ cd simpleInstall

会看到一个install.sh,还有一个README.md

通过阅读README.md文件,安装openGauss的过程非常简单,只需要执行sh install.sh -w password(password是初始化数据库的密码,需要满足复杂度要求)即可。

但是,我们直接执行,却会报一个SEMMNI的错误:

[step 1]: check parameter  
[step 2]: check install env and os setting  
On systemwide basis, the maximum number of SEMMNI is not correct. the current SEMMNI value is: 128. Please  
check it.  
The required value should be greater than 321. You can modify it in file '/etc/sysctl.conf'.

通过查询官方文档,我们发现是需要设置kernel.sem

比如可以执行:

[root@loachost ~]# sysctl -w kernel.sem=250 85000 250 330

或者现在/etc/sysctl.conf里加入一行:

kernel.sem=250 85000 250 330

之后执行sysctl -p

设置好kernel.sem之后执行sh install.sh -w password就一路顺风了。

运行

因为我们是安装的单机版,所以install.sh执行之后,会把数据库的数据目录设置为$HOME/data/single_node

所以,我们后续的很多命令,只要需要指定数据目录的地方,都需要使用-D $HOME/data/single_node

其中,install.sh脚本还做了一件事,就是在当前用户的.bashrc文件里,加入了openGauss相关的环境变量,即:

export GAUSSHOME=/home/user1  
export PATH=$GAUSSHOME/bin:$PATH  
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH  
export GS_CLUSTER_NAME=dbCluster  
ulimit -n 1000000

之后就可以通过$GAUSSHOME来表示数据库安装路径了。

gs_ctl

控制启停的命令是gs_ctl,执行的时候加上数据目录。

如:

[user1@localhost ~]$ gs_ctl stop -D data/single_node  
[2025-07-18 06:52:22.364][5624][][gs_ctl]: gs_ctl stopped ,datadir is /home/user1/data/single_node    
waiting for server to shut down.... done  
server stopped

或者:

[user1@localhost ~]$ gs_ctl start -D data/single_node  
[2025-07-18 06:52:28.781][5634][][gs_ctl]: gs_ctl started,datadir is /home/user1/data/single_node    
[2025-07-18 06:52:28.815][5634][][gs_ctl]: waiting for server to start...

配置

默认地,openGauss只监听本地端口,我们可以改变这个配置。

数据库路径下的postgresql.conf,其中有监听地址与端口的配置。

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#local_bind_address = '0.0.0.0'
#port = 5432   

其中,

  • listen_address 监听地址
  • port 端口

改好以后重启,openGauss就监听在我们指定的IP和端口上了。

但是这时候,如果我们在远程连接这个数据库,还会出错:

gsql: FATAL:  no pg_hba.conf entry for ...

只是需要我们在数据目录下面的pg_hba.conf中,把我们的客户端主机、用户名以及认证方法加进去。

首先,本地登录psql,在数据库中创建用户:

=# create user dbuser1 password 'dbpass@123';  
CREATE ROLE

然后,我们在pg_hba.conf中, 加入一行:

host   all             dbuser1          192.168.56.0/24        sha256

就可以在远程客户机上使用dbuser1用户登录了,命令为:

gsql school -h 192.168.56.1 -U dbuser1
Password for user dbuser1:    
gsql ((openGauss 6.0.1 build 84c20a90) compiled at 2025-01-17 17:29:32 commit 0 last mr  )  
Non-SSL connection (SSL connection is recommended when requiring high-security)  
Type "help" for help.  
  
school=>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值