配置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 镜像压缩包
-
打开浏览器,访问:
https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/docker_img/x86_64/
-
下载文件:
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 极简版软件包
-
访问 OpenGauss 官方下载页:
openGauss下载档案 | 下载 | openGauss社区
-
选择 “极简版”,下载适用于 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
⏳ 项目较大,请耐心等待。
第五步:准备构建目录
-
进入 Docker 构建目录:
cd openGauss-server/docker/dockerfiles/5.0.0
-
将你下载的
openGauss-3.0.0-openEuler-64bit.tar.bz2
复制到该目录下。
第六步:修改 Dockerfile
-
用 VS Code、Notepad++ 或其他编辑器打开
dockerfile_arm
。 -
找到以下三行(通常在 COPY 和 RUN 指令中):
openGauss-5.0.0-openEuler-64bit.tar.bz2
-
将它们全部替换为你的实际文件名:
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=# \lgsql交互模式中(提示符是 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环境) | 较低(屏蔽细节) |
稳定性 | 受虚拟机影响 | 较稳定 | 最稳定 |
适用场景 | 专业学习/生产模拟 | 开发/学习 | 快速部署 |