如何在openEuler上配置GBase 8s数据库的网络连接?
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 驱动替代 |
五、最简实操总结
- gbasedbt 用户:修改 sqlhosts 为 0.0.0.0:9088,调整 onconfig 配置
- gbasedbt 用户:重启数据库(onmode -ky → oninit)
- root 用户:开放 9088 端口,验证端口开放状态
- gbasedbt 用户:创建远程用户并赋权
- 客户端输入连接信息,完成远程连接测试
标签:openEuler | GBase 8s | 网络配置 | 远程连接 | 数据库运维
评论
热门帖子
- 12025-12-01浏览数:183387
- 22023-05-09浏览数:26130
- 42023-09-25浏览数:19794
- 52020-05-11浏览数:18438