从零到一:在openEuler上部署openGauss数据库的实战避坑指南

发布时间:2026/6/11 14:44:54

从零到一:在openEuler上部署openGauss数据库的实战避坑指南 1. 环境准备从虚拟机到操作系统的完整搭建第一次在openEuler上部署openGauss的经历让我记忆犹新。当时作为Linux新手光是准备环境就折腾了整整两天。现在回想起来很多时间都浪费在了基础配置的细节上。为了让后来者少走弯路我把这些经验都整理成了可复用的操作指南。硬件配置是第一个容易踩坑的地方。很多人以为虚拟机可以随便分配资源实际上openGauss对内存要求很高。实测发现8GB内存勉强能跑但遇到复杂查询就容易卡死。建议宿主机至少16GB内存给虚拟机分配12GB。处理器核心数也不能太少4核是最低要求有条件的话最好给6核。openEuler系统的安装有几个关键点需要注意下载镜像时一定要选对版本推荐22.09 LTS长期支持版更稳定安装类型务必选择服务器勾选所有开发工具和系统工具网络配置要记下IP、网关和DNS后面数据库远程连接全靠这些信息安装完成后千万别急着进行下一步。我建议先做三件事更新系统yum update -y安装基础工具yum install vim wget tar net-tools -y测试网络连通性ping www.baidu.com2. 系统优化为数据库运行扫清障碍openGauss对操作系统有特殊要求直接安装大概率会报错。经过多次实践我总结出六个必须完成的系统配置项。2.1 关闭防火墙和SELinux数据库需要开放多个端口新手最容易卡在防火墙配置上。最稳妥的做法是直接关闭systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config2.2 调整内核参数在/etc/sysctl.conf末尾添加这些参数能显著提升数据库性能vm.swappiness 0 vm.overcommit_memory 1 kernel.sem 250 32000 100 999 kernel.shmall 4294967296 fs.file-max 6815744执行sysctl -p立即生效。这些参数主要优化了内存管理和进程通信避免数据库运行时出现资源争用。2.3 创建专用用户直接用root运行数据库是极其危险的做法。应该创建专用用户组和用户groupadd dbgroup useradd -g dbgroup omm passwd omm记得给omm用户sudo权限在/etc/sudoers文件添加omm ALL(ALL) ALL3. 数据库安装手把手避开依赖陷阱openGauss的安装包自带了很多依赖但仍有几个容易忽略的包需要手动安装。3.1 解决依赖问题运行这条命令安装所有必需依赖yum install libaio-devel flex bison ncurses-devel glibc-devel patch libnsl -y特别提醒如果遇到No package libaio-devel available错误试试yum install libaio* -y3.2 正式安装步骤创建安装目录并授权mkdir -p /opt/software/openGauss chown -R omm:dbgroup /opt/software切换到omm用户下载安装包su - omm wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.1/x86_openEuler/openGauss-Lite-3.1.1-openEuler-x86_64.tar.gz解压并安装tar -zxvf openGauss-Lite-3.1.1-openEuler-x86_64.tar.gz -C /opt/software/openGauss cd /opt/software/openGauss ./install.sh --mode single -D ./data -R ./install --start安装过程中最常见的两个报错权限不足检查/opt/software的属主是否为omm:dbgroup内存不足确保虚拟机有足够可用内存必要时关闭其他程序4. 配置与连接远程访问的终极方案安装成功只是第一步要让数据库真正可用还需要正确配置。4.1 修改监听配置编辑/opt/software/openGauss/data/postgresql.conf找到listen_addresses localhost改为listen_addresses 0.0.0.04.2 设置访问权限在pg_hba.conf末尾添加host all all 0.0.0.0/0 sha256这样配置后任何IP都能尝试连接但需要正确密码。4.3 创建远程用户通过gsql创建专用远程用户更安全CREATE USER remote_user WITH PASSWORD YourSecurePassword; GRANT ALL PRIVILEGES ON DATABASE postgres TO remote_user;测试连接时如果超时检查三个方面虚拟机网络是否NAT模式防火墙是否确实关闭端口5432是否被占用最后提醒一点生产环境一定要修改默认密码并且不要使用简单密码。我在测试环境就遇到过被暴力破解的情况后来加强了密码策略才解决。

相关新闻