单节点部署 openGauss
本文介绍了如何从零部署一个单节点的 openGauss 数据库。
提示
环境:
操作系统:CentOS 7.9-X86_64
openGauss 版本:6.0.2 (LTS)
# 1 安装前准备
# 1.1 获取安装包
- 从openGauss开源社区下载对应平台的安装包
- 登录openGauss开源社区 (opens new window),选择对应平台的最新安装包下载。对于个人开发者或非企业级环境,下载极简安装包(不安装OM等组件)即可。
- 选择对应的系统和架构,“下载”。
# 1.2 创建用户和用户组
根据权限隔离原则,我们需要创建一个新的用户。
创建用户组dbgroup。
groupadd dbgroup
1创建用户组dbgroup下的普通用户omm,并设置普通用户omm的密码,密码建议设置为omm@123。
useradd -g dbgroup omm passwd omm
1
2使用omm用户登录到openGauss包安装的主机,解压openGauss压缩包到安装目录。
# 1. 由于 omm 不具有 sudo 权限,我们先让 root 用户创建数据库目录 mkdir -p /utxt/soft/openGauss chown -R omm:dbgroup /utxt/soft/openGauss chmod -R 755 /utxt/soft/openGauss/ # 2. 切回 omm 用户,执行 [omm@opengauss ~]$ ls openGauss-Server-6.0.2-CentOS7-x86_64.tar.bz2 [omm@opengauss ~]$ tar -jxf openGauss-Server-6.0.2-CentOS7-x86_64.tar.bz2 -C /utxt/soft/openGauss/ [omm@opengauss ~]$ ll /utxt/soft/openGauss/ total 16 drwxr-xr-x 2 omm dbgroup 4096 Jul 15 15:29 bin drwxr-xr-x 3 omm dbgroup 22 Jul 15 15:29 etc drwxr-xr-x 3 omm dbgroup 24 Jul 15 15:29 include drwxr-xr-x 4 omm dbgroup 95 Jul 15 15:29 jre drwxr-xr-x 6 omm dbgroup 4096 Jul 15 15:29 lib drwxr-xr-x 5 omm dbgroup 53 Jul 15 15:29 share drwxr-xr-x 2 omm dbgroup 78 Jul 15 15:29 simpleInstall -rw-r--r-- 1 omm dbgroup 47 Jul 15 15:29 version.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 2 部署
进入目录下的 simpleInstall
cd /utxt/soft/openGauss/simpleInstall
1执行install.sh脚本安装openGauss
sh install.sh -w ****
1上述命令中,-w是指初始化数据库密码(gs_initdb指定),安全需要必须设置。
可能会出现如下报错:
[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'.
1
2
3
4这是因为:当前 Linux 系统的内核参数
kernel.sem
中的SEMMNI
值不满足 openGauss 数据库的最低运行要求。 openGauss 实例需要更多的信号量集来正常工作。需要以
root
用户身份修改/etc/sysctl.conf
文件来调整SEMMNI
的值# 格式为: SEMMSL SEMMNS SEMOPM SEMMNI kernel.sem = 250 32000 100 1024
1
2使得新的内核参数生效:
sudo sysctl -p
查看
SEMMNI
值是否已更新:sysctl kernel.sem
安装执行完成后,使用ps和gs_ctl查看进程是否正常。
ps ux | grep gaussdb gs_ctl query -D /utxt/soft/openGauss/data/single_node
1
2
3提示
这里 gs_ctl 可能不能直接使用,需要先把openGauss目录的 bin 目录加入到环境变量中:
export PATH=$PATH:/utxt/soft/openGauss/bin
1
# 3 访问 openGauss
这里我们使用 gsql 访问 openGauss,gsql是openGauss提供的在命令行下运行的数据库连接工具。此工具除了具备操作数据库的基本功能,还提供了若干高级特性,便于用户使用。
以操作系统用户omm登录数据库主节点。
连接数据库。
数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。
执行如下命令连接数据库。
gsql -d postgres -p 5432
1其中postgres为需要连接的数据库名称,5432为数据库主节点的端口号。请根据实际情况替换。另外,也可以使用如下任一命令连接数据库。
gsql postgres://omm:******@127.0.0.1:5432/postgres -r gsql -d "host=127.0.0.1 port=5432 dbname=postgres user=omm password=******"
1
2连接成功后,系统显示类似如下信息:
[omm@opengauss ~]$ gsql -d postgres -p 5432 gsql ((openGauss 6.0.2 build 6285c0ef) compiled at 2025-07-15 15:13:08 commit 0 last mr 8059 ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=#
1
2
3
4
5
6omm用户是管理员用户,因此系统显示“DBNAME=#”。若使用普通用户身份登录和连接数据库,系统显示“DBNAME=>”。
“Non-SSL connection”表示未使用SSL方式连接数据库。如果需要高安全性时,请使用SSL连接 (opens new window)。
下面是修改密码的方法:
openGauss=# ALTER ROLE omm IDENTIFIED BY '$$$$$$$$' REPLACE 'XXXXXXXX';
1退出数据库。
openGauss=# \q
1
# 4 开启远程访问
openGauss 默认只允许 127.0.0.1
(本地回环地址) 访问,这是出于安全考虑。
确保开放了相关端口的防火墙
要配置 openGauss 以允许远程访问,你需要修改 openGauss 服务器上的两个核心配置文件:
postgresql.conf
:用于配置数据库实例的监听地址。vim /utxt/soft/openGauss/data/single_node/postgresql.conf # 找到 listen_addresses 改为 listen_addresses = '*'
1
2
3
4pg_hba.conf
:用于配置客户端的认证规则。(下面METHOD最好改为md5,有个坑)你需要定义哪些 IP 地址范围、哪些用户可以访问哪些数据库,以及使用哪种认证方式。
vim /utxt/soft/openGauss/data/single_node/pg_hba.conf # 在末尾添加规则 # TYPE DATABASE USER ADDRESS METHOD host all all 0.0.0.0/0 sha256
1
2
3
4
5字段 值 含义 TYPE
host
允许 TCP/IP 连接。 DATABASE
all
允许连接到所有数据库。 USER
all
允许所有数据库用户连接。 ADDRESS
0.0.0.0/0
允许所有 IPv4 地址连接。 METHOD
sha256
强制使用密码(SHA256加密)进行认证。这是推荐且安全的方式。 🔒 为了更安全,你也可以限制 IP 范围:
# 允许 192.168.1.x 子网内的所有主机访问 host all all 192.168.1.0/24 sha256
1
2重启或重载配置
重载配置(推荐,无需中断服务): 使用
gs_ctl reload
命令重载配置。[omm@opengauss ~]$ gs_ctl reload -D /utxt/soft/openGauss/data/single_node [2025-10-16 12:49:57.139][72874][][gs_ctl]: gs_ctl reload ,datadir is /utxt/soft/openGauss/data/single_node server signaled # 查看端口开放情况 [omm@opengauss ~]$ netstat -tlnp |grep gaussdb (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 33078/gaussdb tcp 0 0 0.0.0.0:5433 0.0.0.0:* LISTEN 33078/gaussdb tcp6 0 0 :::5432 :::* LISTEN 33078/gaussdb tcp6 0 0 :::5433 :::* LISTEN 33078/gaussdb
1
2
3
4
5
6
7
8
9
10
11
12重启数据库(如果重载失败或不确定):
# 重启数据库命令格式 gs_ctl restart -D $GAUSSHOME/data/datanode
1
2
注意
openGauss 默认情况下禁止使用初始用户(即安装 openGauss 时默认创建的管理员用户,通常是
omm
或在某些配置中指定的管理员)进行远程连接。创建普通用户
[omm@opengauss ~]$ gsql -d postgres -p 5432 -U omm gsql ((openGauss 6.0.2 build 6285c0ef) compiled at 2025-07-15 15:13:08 commit 0 last mr 8059 ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=# CREATE USER remote_user WITH PASSWORD '**密码**'; CREATE ROLE
1
2
3
4
5
6
7授予权限:
-- 如果需要管理员权限(不推荐用于日常操作) -- GRANT SYSADMIN TO remote_user; -- 如果需要连接到特定数据库 -- GRANT CONNECT ON DATABASE your_database TO remote_user;
1
2
3
4
5提示
现在我们使用 Navicat、DataGrip 工具,通过用户: remote_user 远程连接数据库可能会出现下面问题:
[08004] Invalid or unsupported by client SCRAM mechanisms.
none of the server's SASL authentication mechanisms are supported
原因是:数据库(服务器)和连接工具(客户端)在协商密码加密和验证方法时,没有找到共同支持的机制。
修复方法:
vim /utxt/soft/openGauss/data/single_node/pg_hba.conf
host all all 0.0.0.0/0 md5
vim /utxt/soft/openGauss/data/single_node/postgresql.conf
password_encryption_type = 0
重新关闭、启动数据库
gs_ctl stop -D /utxt/soft/openGauss/data/single_node gs_ctl start -D /utxt/soft/openGauss/data/single_node
1
2进入数据库,更新密码
ALTER USER remote_user WITH PASSWORD '***密码***';
1
😄 此时,数据库就能连接了。
# 5 gsql 常用语法
gsq
是 openGauss 提供的命令行数据库连接工具,类似于 PostgreSQL 的 psql
。
常见的连接方法:
gsql -d postgres -h 10.10.0.11 -U jack -p 8000 -W Test@123
gsql
工具使用一套标准的参数来指定连接信息:
参数 | 含义 | 示例值 |
---|---|---|
-d | 数据库名(Database Name) | postgres (默认数据库) |
-U | 用户名(User Name) | omm (默认管理员) 或其他自定义用户 |
-h | 主机名或IP地址(Host) | localhost 或 192.168.1.100 |
-p | 端口号(Port) | 安装时指定的端口 |
-W | 强制输入密码(Password) | (可选,但推荐) |
连接后的操作:
操作 | 命令 | 示例 |
---|---|---|
执行 SQL | 直接输入 SQL 语句,以分号 ; 结尾 | SELECT * FROM pg_database; |
列出数据库 | 元命令:列出数据库 | \l |
切换数据库 | 元命令:连接到新数据库 | \c new_db |
列出表 | 元命令:列出当前 Schema 的表 | \dt |
获取帮助 | 元命令:显示帮助 | \? |
退出 | 元命令:退出 gsql | \q |