配置openguass 教程(自存)

配置openguass 教程(自存)

​失败尝试:

1.点击电脑上的ubuntu图标但是打不开:WSL Ubuntu实例,状态 Stopped(已停止)。解决:卸载重装。

2.在wsl2 Ubuntu中安装Docker:安装docker成功后拉取openguass镜像失败,网络连接问题。解决:尝试更换镜像源,更换docker配置,无解。

博主在尝试后使用了这个博主的方法,配置成功,特别感谢,以下是原博链接:

原博链接点击这里@Aderversa

最终采取:没有直接docker pull,在 Windows 11 + Docker Desktop(基于 WSL2) 环境下,手动构建并运行 OpenGauss 3.0.0 的 Docker 镜像 。整个过程适用于 x86_64 架构

"基于源码 + 极简版软件包 + openEuler 20.03 基础镜像" 手动构建 Docker 镜像

基本知识:

需要软件:

OpenGuass(for PostgreSQL) 2.0 + docker + linux(ubuntu)+ Navicat + JDK + IntelliJ IDEA + OpenGauss JDBC 驱动

🔗 软件之间的关系

  • Linux 是运行 OpenGauss 的推荐环境。
  • Docker 是一种可选方式,用于快速部署 OpenGauss。
  • OpenGauss 是核心数据库系统。
  • Navicat 通过远程连接(端口 5432)操作 OpenGauss。
  • Java 程序 (通过 IDE 编写)使用 JDBC 驱动 连接 OpenGauss,进行数据库操作。

✅ 前提条件

  • 已安装 Docker Desktop 并启用 WSL2 后端
  • 系统是 Windows 11(x86_64)
  • 已安装 Git(推荐 Git Bash 或 PowerShell)

下载 Docker Desktop for Windows

  • 安装页面:
    https://docs.docker.com/desktop/install/windows-install/
  • 下载的是 Docker Desktop Installer.exe
  • 右键 → 以管理员身份运行 安装程序
  • 确认是否安装成功:在 PowerShell 中运行:docker --version
  • 在 Docker Desktop 设置中启用 "Use the WSL 2 based engine"(默认已启用)

详细安装步骤

第一步:下载 openEuler 20.03 镜像压缩包

  1. 打开浏览器,访问:

    https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/docker_img/x86_64/

  2. 下载文件:

    openEuler-docker.x86_64.tar.xz

第二步:加载 openEuler 镜像到 Docker

在 PowerShell 或 Git Bash 中执行:

docker load -i openEuler-docker.x86_64.tar.xz

验证是否加载成功:

docker images

你应该能看到:

openeuler-20.03-lts latest eeb84ae20ad2 ...

第三步:下载 OpenGauss 3.0.0 极简版软件包

  1. 访问 OpenGauss 官方下载页:

    openGauss下载档案 | 下载 | openGauss社区

  2. 选择 "极简版",下载适用于 openEuler + x86_64 的包,文件名类似:openGauss-3.0.0-openEuler-64bit.tar.bz2

第四步:克隆 OpenGauss 源码(5.0.0 分支)

在你希望存放项目的目录下运行:

git clone -b 5.0.0 https://gitee.com/opengauss/openGauss-server.git

⏳ 项目较大,请耐心等待。

第五步:准备构建目录

  1. 进入 Docker 构建目录:

    cd openGauss-server/docker/dockerfiles/5.0.0

  2. 将你下载的 openGauss-3.0.0-openEuler-64bit.tar.bz2 复制到该目录下

第六步:修改 Dockerfile

  1. 用 VS Code、Notepad++ 或其他编辑器打开 dockerfile_arm

  2. 找到以下三行(通常在 COPY 和 RUN 指令中):

    openGauss-5.0.0-openEuler-64bit.tar.bz2

  3. 将它们全部替换为你的实际文件名:

    openGauss-3.0.0-openEuler-64bit.tar.bz2

第七步:修复 entrypoint.sh 的换行符

Windows 默认使用 CRLF 换行,Linux 容器需要 LF。

使用 VS Code

  • 用 VS Code 打开 entrypoint.sh
  • 右下角点击 CRLF → 改为 LF
  • 保存文件

第八步:构建 OpenGauss 镜像

仍在 5.0.0 目录下,执行:

docker build -f dockerfile_arm -t opengauss:3.0.0 .

⏱ 构建过程可能需要几分钟,请耐心等待。若报错,请检查文件名、换行符和路径。

第九步:运行 OpenGauss 容器**(带持久化 + 端口映射 + 自定义用户)**

复制代码
# 先创建本地数据目录(用于持久化)
mkdir D:\opengauss_data

# 启动容器
docker run --name opengauss-1 `
  -p 5432:5432 `
  -v D:\opengauss_data:/var/lib/opengauss/data `
  -e GS_NODENAME=gaussdb `
  -e GS_USERNAME=westone `
  -e GS_PASSWORD=Qaz@0572 `
  --privileged=true `
  --restart=always `
  -d opengauss:3.0.0

🔒 注意:GS_PASSWORD 必须满足 OpenGauss 的复杂度要求(大小写字母+数字+特殊字符,至少8位)。

  • -v:将 Windows 的 D:\opengauss_data 映射到容器内数据目录,实现持久化(重启容器/电脑后数据不丢)
  • -p 5432:5432:将容器 5432 端口映射到主机,供 Navicat 连接
  • 用户名/密码按你记忆中的 westone / Qaz@0572 设置

第十步:验证是否成功

容器是否运行成功:

docker ps

✅ 正常应看到:

CONTAINER ID IMAGE ... STATUS PORTS NAMES

xxxxxx opengauss:3.0.0 ... Up 2 mins 0.0.0.0:5432->5432/tcp opengauss-1

Navicat(实验要求)

  • 连接类型:PostgreSQL

  • 主机:localhost

  • 端口:5432

  • 初始数据库:postgres

  • 用户名:westone

  • 密码:Qaz@0572

    进入容器内部

    docker exec -it opengauss-1 /bin/bash

    切换为omm用户

    su - omm

    连接数据库

    gsql -d postgres -p 5432

    在gsql中执行测试命令

    \l # 查看数据库列表
    \q # 退出gsql

常用命令行:

复制代码
端口是否被占用:
netstat -tulpn | grep 5432

重新启动容器:
docker restart opengauss-1

查看所有容器(含停止的)
docker ps -a

查看正在运行的容器
docker ps

查看容器日志(排查启动失败)
docker logs opengauss-1

停止容器
docker stop opengauss-1

删除容器(保留镜像)
docker rm opengauss-1

删除镜像
docker rmi opengauss:3.0.0

命令行验证
# 1. 进入容器
docker exec -it opengauss-1 sh

# 2. 切换到 omm 用户
su - omm

# 3. 先退出 gsql(如果已在其中)
gsql
omm=# \q

确保已退出 gsql
[omm@1ed9529328d7 ~]$

# 4. 启动gsql 用 westone 用户登录
gsql -d postgres -U westone -W
# 输入密码:Qaz@0572

# 5. 成功进入
westone=#

现在你可以执行 SQL 了,比如:
westone=# \l

gsql交互模式中(提示符是 omm=# 或 omm-#)
\q 是 gsql 的退出命令

环境配置说明

方案 架构层次 技术栈
openEuler镜像 Windows → 虚拟机 → openEuler → Docker → OpenGauss 完整虚拟化
WSL Ubuntu Windows → WSL2 → Ubuntu → Docker → OpenGauss 半虚拟化
Windows Docker Windows → Docker Desktop → OpenGauss容器 容器化

🔄 详细技术对比

方面 openEuler虚拟机 WSL Ubuntu Windows Docker
启动速度 慢(2-5分钟) 快(5-10秒) 快(3-5秒)
资源占用 高(2-4GB固定) 中(动态1-2GB) 低(动态分配)
性能 较差(双重虚拟化) 较好(WSL2优化) 好(直接运行)
网络配置 复杂(端口转发) 简单(localhost) 简单(localhost)
文件共享 需要配置共享文件夹 自动挂载(/mnt/c/) 直接访问
学习价值 最高(企业级OS) 高(Linux环境) 较低(屏蔽细节)
稳定性 受虚拟机影响 较稳定 最稳定
适用场景 专业学习/生产模拟 开发/学习 快速部署
相关推荐
瑞士卷@4 小时前
MyBatis入门到精通(Mybatis学习笔记)
java·数据库·后端·mybatis
白云偷星子4 小时前
MySQL笔记13
数据库·笔记·mysql
施嘉伟4 小时前
静默安装金仓数据库,到底有多简单?
数据库
Tapdata4 小时前
实时物化视图的新路径:从传统 Join 到跨源实时查询
数据库
optimistic_chen5 小时前
【Java EE进阶 --- SpringBoot】Mybatis - plus 操作数据库
数据库·spring boot·笔记·java-ee·mybatis·mybatis-plus
FJW0208145 小时前
关系型数据库大王Mysql——DDL语句操作示例
数据库·mysql
言之。5 小时前
Chroma 开源的 AI 应用搜索与检索数据库(即向量数据库)
数据库·人工智能·开源
来旺5 小时前
互联网大厂Java面试全解析及三轮问答专项
java·数据库·spring boot·安全·缓存·微服务·面试
深思慎考5 小时前
Ubuntu 系统 RabbitMQ 安装指南与使用(含 C++ 客户端与 SSL 错误解决)
c++·ubuntu·rabbitmq·github·rabbitmqpp