ZhouChuang's Blog ZhouChuang's Blog
首页
  • 常用命令
  • 日常总结
  • Prometheus
  • 基础
  • 常用库
专题
  • 「编码」
  • 计算机网络学习笔记
更多
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Zhou Chuang

为学日益 为道日损
首页
  • 常用命令
  • 日常总结
  • Prometheus
  • 基础
  • 常用库
专题
  • 「编码」
  • 计算机网络学习笔记
更多
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Linux 命令

  • 日常的总结

    • 进程管理工具:supervisor
    • 文件传输工具:scp、rsync
    • 正则和文本处理三剑客小结
    • 加密工具 GPG
    • 单节点部署 openGauss
      • 1 安装前准备
        • 1.1 获取安装包
        • 1.2 创建用户和用户组
      • 2 部署
      • 3 访问 openGauss
      • 4 开启远程访问
      • 5 gsql 常用语法
  • Prometheus 技术栈

  • 运维
  • 日常的总结
ZhouChuang
2025-10-16
目录

单节点部署 openGauss

本文介绍了如何从零部署一个单节点的 openGauss 数据库。

提示

环境:

操作系统:CentOS 7.9-X86_64

openGauss 版本:6.0.2 (LTS)

# 1 安装前准备

# 1.1 获取安装包

  1. 从openGauss开源社区下载对应平台的安装包
    1. 登录openGauss开源社区 (opens new window),选择对应平台的最新安装包下载。对于个人开发者或非企业级环境,下载极简安装包(不安装OM等组件)即可。
    2. 选择对应的系统和架构,“下载”。

# 1.2 创建用户和用户组

根据权限隔离原则,我们需要创建一个新的用户。

  1. 创建用户组dbgroup。

    groupadd dbgroup
    
    1
  2. 创建用户组dbgroup下的普通用户omm,并设置普通用户omm的密码,密码建议设置为omm@123。

    useradd -g dbgroup omm
    passwd omm
    
    1
    2
  3. 使用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 部署

  1. 进入目录下的 simpleInstall

    cd /utxt/soft/openGauss/simpleInstall
    
    1
  2. 执行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

  3. 安装执行完成后,使用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提供的在命令行下运行的数据库连接工具。此工具除了具备操作数据库的基本功能,还提供了若干高级特性,便于用户使用。

  1. 以操作系统用户omm登录数据库主节点。

  2. 连接数据库。

    数据库安装完成后,默认生成名称为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
    6

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

    “Non-SSL connection”表示未使用SSL方式连接数据库。如果需要高安全性时,请使用SSL连接 (opens new window)。

  3. 下面是修改密码的方法:

    openGauss=# ALTER ROLE omm IDENTIFIED BY '$$$$$$$$' REPLACE 'XXXXXXXX';
    
    1
  4. 退出数据库。

    openGauss=# \q
    
    1

# 4 开启远程访问

openGauss 默认只允许 127.0.0.1 (本地回环地址) 访问,这是出于安全考虑。

CleanShot 2025-10-16 at 12.43.35@2x

  1. 确保开放了相关端口的防火墙

  2. 要配置 openGauss 以允许远程访问,你需要修改 openGauss 服务器上的两个核心配置文件:

    1. postgresql.conf:用于配置数据库实例的监听地址。

      vim /utxt/soft/openGauss/data/single_node/postgresql.conf
      
      # 找到 listen_addresses 改为
      listen_addresses = '*'
      
      1
      2
      3
      4
    2. pg_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
    3. 重启或重载配置

      • 重载配置(推荐,无需中断服务): 使用 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 或在某些配置中指定的管理员)进行远程连接。

  3. 创建普通用户

    [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

    CleanShot 2025-10-16 at 13.11.15@2x

    提示

    现在我们使用 Navicat、DataGrip 工具,通过用户: remote_user 远程连接数据库可能会出现下面问题:

    [08004] Invalid or unsupported by client SCRAM mechanisms.

    none of the server's SASL authentication mechanisms are supported

    原因是:数据库(服务器)和连接工具(客户端)在协商密码加密和验证方法时,没有找到共同支持的机制。

    修复方法:

    1. vim /utxt/soft/openGauss/data/single_node/pg_hba.conf

      host all all 0.0.0.0/0 md5

    2. vim /utxt/soft/openGauss/data/single_node/postgresql.conf

      password_encryption_type = 0

    3. 重新关闭、启动数据库

      gs_ctl stop -D /utxt/soft/openGauss/data/single_node
      gs_ctl start -D /utxt/soft/openGauss/data/single_node
      
      1
      2
    4. 进入数据库,更新密码

      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
1

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
#数据库#openGauss#高斯数据库#部署
上次更新: 2025/10/16, 15:01:23
加密工具 GPG
Prometheus 概念

← 加密工具 GPG Prometheus 概念→

最近更新
01
概述
06-28
02
find 命令介绍
05-06
03
交换分区的配置
04-09
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Zhou Chuang 版权所有| 鲁ICP备2021031629号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式