部署
版本选择
通过openGuass官网下载地址 ,我们可以看到它支持x86_64
与Aarch64
两种平台,又分成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=>