GBase 8s
安装配置
文章

如何在openEuler上配置GBase 8s数据库的网络连接?

发表于2026-05-11 17:04:3426次浏览1个评论

openEuler 配置 GBase 8s 数据库网络连接(远程可访问)

本文适配 openEuler 22.03 LTS / 24.03 LTS 系统、GBase 8s V8.8 版本,完整覆盖监听配置、端口开放、远程授权、连接测试及常见问题,步骤清晰可直接实操,解决远程无法访问的核心痛点。

一、核心前提

GBase 8s 实现远程网络连接,需同时满足 3 个核心条件,缺一不可:

  • 数据库监听地址配置为 0.0.0.0(允许所有外部 IP 访问)
  • openEuler 系统防火墙开放数据库默认端口(9088)
  • sqlhosts 配置文件正确,且创建可远程登录的数据库用户

二、详细配置步骤

步骤 1:切换至 gbasedbt 用户(核心操作用户)

GBase 8s 不建议使用 root 用户操作,切换至官方推荐的 gbasedbt 用户:

su - gbasedbt

步骤 2:配置 sqlhosts 监听文件(关键)

sqlhosts 文件控制数据库监听地址和端口,需修改为允许所有 IP 访问:

# 编辑 sqlhosts 配置文件
vi $GBASEDBTDIR/etc/sqlhosts

清空原有内容,写入以下配置(实例名、端口可根据实际修改):

gbaseserver onsoctcp 0.0.0.0 9088

参数说明:

  • gbaseserver:数据库实例名(需与自身实例名一致)
  • onsoctcp:网络连接协议(固定)
  • 0.0.0.0:监听所有网卡 IP,允许远程访问(不可改为 127.0.0.1)
  • 9088:数据库默认端口(可自定义,后续需同步开放对应端口)

步骤 3:修改 onconfig 配置文件,开启远程监听

# 编辑 onconfig 配置文件
vi $GBASEDBTDIR/etc/onconfig

找到以下参数,修改并确保配置如下(无多余绑定):

DBSERVERNAME     gbaseserver  # 与 sqlhosts 中的实例名一致
DBSERVERALIASES               # 留空即可,无需配置
NETTYPE          soctcp,1,50,NET  # 启用 TCP 连接,默认配置

步骤 4:重启数据库,使配置生效

配置修改后,需重启数据库实例才能生效,执行以下命令(gbasedbt 用户):

# 优雅停止数据库实例
onmode -ky

# 启动数据库实例
oninit

# 查看实例运行状态(确认启动成功)
onstat -

输出中包含 000000 或 ​Instance Shared Memory Initialized​,表示重启成功。

步骤 5:openEuler 防火墙开放 9088 端口(root 用户执行)

退出 gbasedbt 用户,切换至 root 用户,开放数据库端口(避免远程连接被防火墙拦截):

exit  # 退回 root 用户

# 永久开放 9088 端口(TCP协议)
firewall-cmd --permanent --add-port=9088/tcp

# 重新加载防火墙配置,使端口开放生效
firewall-cmd --reload

# 验证端口是否开放成功
firewall-cmd --list-ports

输出中出现 ​9088/tcp​,表示端口开放成功。

步骤 6:验证监听状态(确认配置生效)

执行以下命令,查看数据库是否正常监听 0.0.0.0:9088:

# 方法1:查看监听端口
netstat -tlpn | grep gbase

# 方法2:查看 9088 端口占用(备选)
ss -tlpn | grep 9088

若输出中包含 ​0.0.0.0:9088​,说明监听配置成功,远程机器可正常访问该端口。

步骤 7:创建可远程登录的数据库用户(必做)

GBase 8s 默认管理员用户(sysdba)不允许远程登录,需新建普通用户并授权:

# 切换至 gbasedbt 用户
su - gbasedbt

# 连接系统数据库 sysmaster
dbaccess sysmaster -

进入数据库交互界面后,执行以下 SQL,创建用户并赋权(用户名、密码可自定义):

-- 创建远程登录用户(用户名:myuser,密码:MyPass@123)
create user myuser with password 'MyPass@123';

-- 赋予用户 DBA 权限(根据实际需求调整,最小权限原则可只赋必要权限)
grant dba to myuser;

-- 退出数据库交互界面
quit

三、远程连接测试(客户端操作)

远程机器使用数据库客户端(DBeaver、Navicat、GBase Data Studio)连接,连接信息如下:

  • 主机地址:GBase 8s 所在服务器的公网/内网 IP
  • 端口:9088(与 sqlhosts 配置一致)
  • 用户名:myuser(刚创建的远程用户)
  • 密码:MyPass@123(自定义的密码)
  • 数据库:sysmaster(系统库,也可连接自己创建的业务库)
  • 驱动:选择 GBase 8s 驱动或 Informix 驱动(客户端需提前安装对应驱动)

连接成功后,可执行简单查询验证:select * from sysdatabases;,能正常返回结果即表示远程连接正常。

四、常见问题及解决方案

问题现象 原因分析 解决方法
远程连接超时,无法建立连接 1. 防火墙未开放 9088 端口;2. sqlhosts 配置为 127.0.0.1;3. 服务器 IP 无法 ping 通 1. 重新执行防火墙开放命令;2. 修改 sqlhosts 为 0.0.0.0;3. 检查服务器网络连通性
远程连接报“拒绝连接” 1. 使用 sysdba 用户远程登录(不允许);2. 数据库实例未启动;3. 监听配置错误 1. 使用新建的普通用户登录;2. 执行 oninit 启动实例;3. 重新检查 sqlhosts 和 onconfig 配置
连接时报“权限不足” 数据库安装目录或配置文件权限异常,gbasedbt 用户无读写权限 执行命令:chown -R gbasedbt:gbasedbt $GBASEDBTDIR,重新授权
监听正常,但客户端无法连接 客户端未安装 GBase 8s 驱动,或驱动版本不兼容 安装对应版本的 GBase 8s 客户端驱动,或使用 Informix 驱动替代

五、最简实操总结

  1. gbasedbt 用户:修改 sqlhosts 为 0.0.0.0:9088,调整 onconfig 配置
  2. gbasedbt 用户:重启数据库(onmode -ky → oninit)
  3. root 用户:开放 9088 端口,验证端口开放状态
  4. gbasedbt 用户:创建远程用户并赋权
  5. 客户端输入连接信息,完成远程连接测试

标签:openEuler | GBase 8s | 网络配置 | 远程连接 | 数据库运维

评论

登录后才可以发表评论
GBase用户51934发表于 3个月前
闪闪发光