名词解释

以下解释一些本文可能会用到的名词:

  • OpenGauss: 华为开发的开源关系型数据库。
  • OpenEuler: 华为开发的 Linux 发行版
  • Linux 发行版(Linux distrubute): 基于 Linux 开发的各种系统,包括 Debian, Fedora等
  • 虚拟机: 在实体机(你正在使用的这台计算机)中虚拟化的一个计算机。
  • Docker: 一种不完全的虚拟机,通过容器进行软件的方便部署。

安装和配置思路

首先需要明确要安装的东西:

  1. OpenGauss 数据库
  2. Navicat/DBeaver/Data Studio等任一款数据库管理软件

那么在哪里安装数据库呢?

有两个选择:

  1. 通过虚拟机 (VirtualBox/VMware/Parallels Desktop) 安装 OpenEuler 并配置
  2. 通过 Docker 安装 (笔者未在 Windows 测试过)

下文将以通过 VirtualBox 的安装 和通过 Docker 的安装两种方法为例。

安装 OpenGauss (VirtualBox)

环境说明

提前说明,笔者使用的环境是 Archlinux。 但是由于 VirtualBox 的跨平台性, 在 Windows 和 MacOS 环境下安装配置 是大同小异的。

安装 VirtualBox

VirtualBox 是 Oracle 公司开发的开源免费虚拟机软件。

archlinux 下通过:

yay virtualbox

Windows 下安装请访问官方网站.

笔者的 VirtualBox 版本是 7.0

安装 OpenEuler

1. 下载 OpenEuler 的 iso 文件

请下载最新版本的 OpenEuler (22.03 LTS-SP1)

注意:需要得知您的处理器架构类型。 一般Windows本都为 x86_64 架构。2020年以后购买的 MacBook 为 arm架构。 arm架构请下载 标注为aarch(Arm架构)的镜像版本。

不要使用官方镜像源,可以选择第三方镜像源下载。

2. 在VirtualBox 中新建虚拟机

  • 配置好虚拟机的名字
  • 系统类型为Linux, 版本为RedHat 64bit。

CPU、内存、硬盘等的分配随意。 笔者分配了4个核和2G内存和20G硬盘空间。

3. 启动虚拟机

此时会弹出无法启动的信息。 这是因为当前的虚拟硬盘空空如也, 我们将使用刚刚下载的 .iso 文件挂载到虚拟光驱, 从虚拟光驱启动安装。

Retry and boot后, 选择第一项进入安装指引。

4. 安装 OpenEuler

openEuler 的安装程序是有GUI 界面的,而且可以选择中文。

点击 最小安装 修改为 服务器,并且勾选 openGauss.

根据指引,选择安装的硬盘,配置root用户即可。

5. 关机,调整启动项

安装结束后提示重启系统,此时重启系统将回到安装界面。 此时可以直接从外部关闭虚拟机, 然后配置虚拟机的启动项为硬盘启动。

可以将其余的两启动方式勾掉。

此时系统和OpenEuler和OpenGauss已经安装完毕。

6. 配置端口转发和 ssh 连接

我不想使用虚拟机提供的终端访问系统,可以配置ssh连接1

进入虚拟机,输入指令 nmcli

查看你的ip地址,(似乎默认为10.0.2.15/24)。

VirtualBox Manager中修改此虚拟机的网络设置 配置端口转发(如图)

需要配置一条到22端口的转发,以使用ssh 还需要配置一条到7654端口的转发,方便navicat连接服务器

此时在外部可以通过命令(linux下) ssh -p 2222 root@127.0.0.1 访问

检查 OpenGauss 是否安装

登入系统(或者ssh连接)后, 输入 su - opengauss 命令切换到 opengauss 用户。

注意: 在su 后面的 - (dash)符号不能省略。

使用

1
ps ux | grep gauss

查看是否有相关进程运行。

使用

1
gsql -d postgres -p 7654 -r

进入交互式环境。 (Ctrl+D以退出)

安装 OpenGauss (Docker)

安装配置Docker

在 Linux/MacOS 下可以通过各种包管理器安装。

在 Windows 系统下安装请参考 官方网站

安装 OpenGauss

需要解释的是 docker 安装的opengauss的默认配置与openEuler自动安装的是不同的。

1
sudo docker run --name opengauss --privileged=true -p 5432:5432 -d -e GS_PASSWORD=Euler@1234 enmotech/opengauss:latest

注:密码设置必须为大写字母、小写字母、特殊字符、数字四种中三种的组合。

命令解释:

  • run 表示运行这一容器
  • --name opengauss 标帜容器名称,可以改
  • --privileged=true 表示docker内的root拥有真正的root权限(对于宿主机)
  • -p 5432:5432 表示把容器内的端口5432映射到宿主机的5432端口
  • -d 后台运行,返回容器id
  • -e GS_PASSWORD=test@123 设置环境变量 GS_PASSWORD 就是数据库管理员用户omm的密码
  • enmotech/opengauss:latest 最新版本的镜像

如果下载过于缓慢,请更换镜像源。参考本文

配置 openGauss

1
docker ps

查看容器是否运行

1
docker exec -it [name] /bin/sh

[name]为你的容器的名字

进入交互式环境

1
su - omm

切换到数据库管理员用户 omm

1
gsql

尝试是否能成功进入数据库

补充的Docker命令

  • docker start/stop [name] 开启/关闭容器
  • docker ps 查看运行的容器
  • docker images 查看本地容器

配置Navicat等数据库管理应用

前置知识

OpenGauss 实际上是 Postgres 的一个子集。

在Navicat等数据库管理应用创建连接时选择 Postgres

连接 VirtualBox 安装的 openGauss

1. 系统防火墙设置

此小节命令需要在root用户下执行

临时测试可以选择直接停用防火墙(不够优雅):

1
systemctl stop firewalld.service

可以选择开启7654端口。

1
2
firewall-cmd --zone=public --add-port=7654/tcp --permanent
firewall-cmd --reload

2. 设置数据库

配置 postgresql.conf文件。

此文件和 pg_hba.conf 都在 opengauss 用户的home目录中

需要首先登入opengauss用户

1
2
3
su - opengauss
cd ~/data
vi postgresql.conf

vi (vim) 教程请参考 菜鸟教程

修改内容:

1
2
3
listen_address= '*'
local_bind_address = '0.0.0.0'
password_encryption_type = 0

注意取消掉前面的注释符号#

然后配置

1
vi pg_hba.conf

在最后加一条:

1
host all all 0.0.0.0/0 md5

3. 重启OpenGauss

首先需要进入opengauss用户

gs_ctl restart

4. 配置数据库用户

进入gsql 交互式环境

1
gsql -d postgres -p 7654 -r

如果是首次进入gsql, 需要配置超级管理员用户opengauss的密码

1
ALTER ROLE opengauss PASSWORD 'Test@123';

然后创建用于连接的用户

1
2
CREATE USER test WITH PASSWORD 'Test@123';
ALTER USER test sysadmin;

连接 Docker 安装的 OpenGauss

参考连接虚拟机安装的 openGauss

同样也是需要修改提到的两个文件,但是 文件的目录在 /var/lib/opengauss/data

不需要配置防火墙, 需要配置用户,也是通过gsql进行。

配置 Navicat

此处以DBeaver 的配置为例

设置主机为localhost,

端口为7654或是5432(取决于你的配置)

数据库为默认的postgres

认证用户名为创建的用于连接的用户,密码为你自己设置的密码。

更新日志

  • 2023/2/28 优化了 Navicat 配置的细节

  1. SSH: Secure Shell 协议。远程连接终端。 ↩︎