利用docker轻松安装高斯数据库

一 什么是openGauss

openGauss是一款开源的关系型数据库管理系统,它具有多核高性能、全链路安全性、智能运维等企业级特性。 openGauss内核早期源自开源数据库PostgreSQL,融合了华为在数据库领域多年的内核经验,在架构、事务、存储引擎、优化器及ARM架构上进行了适配与优化。作为一个开源数据库,期望与广泛的开发者共同构建一个多元化技术的开源数据库社区。
在这里插入图片描述

openGauss的安装

传统安装

https://gitee.com/opengauss/openGauss-server?_from=gitee_search

在上面的官网中给出了传统的安装步骤,具体操作比较繁琐,需要设置配置文件、准备安装环境等等,不适合想快速入手高斯数据库的同学,当然如果有同学想了解传统的安装步骤,我后续会出一个文章专门详细说明这个传统安装步骤。

docker安装

环境准备

第一步当然是要准备一台Linux服务器啦,这里作者用虚拟机来演示具体的安装,下面贴出系统的参数以供参考。

[root@192 ~]# cat /proc/version
Linux version 3.10.0-1160.76.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Wed Aug 10 16:21:17 UTC 2022
[root@192 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

安装基础依赖

yum install gcc zlib* openssl* -y

docker安装

docker安装

yum install docker

docker版本检查与启动

[root@192 ~]# docker -v
Docker version 20.10.18, build b40c2f6
[root@192 ~]# systemctl start docker

设置开机自启

[root@192 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

高斯数据库安装

拉取镜像
[root@192 ~]# docker pull enmotech/opengauss:latest
latest: Pulling from enmotech/opengauss
284055322776: Pull complete
a7ca82b898d7: Pull complete
2f93c23d8eb5: Pull complete
3842013b7685: Pull complete
6bc7e92855e3: Pull complete
39c9c4e5b487: Pull complete
1f9d76df94b5: Pull complete
44db1c59ef84: Pull complete
63ab02376fd3: Pull complete
cf751b0b3be9: Pull complete
9dc428e2c8b4: Pull complete
Digest: sha256:d5a3e38fa2553a44e7fa1cd5cad0b4f0845a679858764067d7b0052a228578a0
Status: Downloaded newer image for enmotech/opengauss:latest
docker.io/enmotech/opengauss:latest
启动镜像
[root@192 ~]# docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Enmo@123 -p 8090:5432 enmotech/opengauss:latestdocker exec -it opengauss sh
646c72fc112d5e0ce4e24bcb4cfddb32a5cbd07c2e6858e68b4aa297e75f07b1
[root@192 ~]# docker ps

启动命令讲解

GS_PASSWORD
在你使用openGauss镜像的时候,必须设置该参数。该参数值不能为空或者不定义。该参数设置了openGauss数据库的超级用户omm以及测试用户gaussdb的密码。openGauss安装时默认会创建omm超级用户,该用户名暂时无法修改。测试用户gaussdb是在docker-entrypoint.sh中自定义创建的用户。
openGauss镜像配置了本地信任机制,因此在容器内连接数据库无需密码,但是如果要从容器外部(其它主机或者其它容器)连接则必须要输入密码。
openGauss的密码有复杂度要求,需要:密码长度8个字符以上,必须同时包含英文字母,数字,以及特殊符号
GS_NODENAME
指定数据库节点名称 默认为gaussdb
GS_USERNAME
指定数据库连接用户名 默认为gaussdb
GS_PORT
指定数据库端口,默认为5432。

虚拟机外访问测试

连接密码为镜像启动时自定义的密码Enmo@123
在这里插入图片描述

进入容器,并切换omm用户,使用gsql连接高斯数据库。
[root@192 ~]# docker exec -it opengauss sh
# su - omm
omm@646c72fc112d:~$ gsql
gsql ((openGauss 2.1.0 build 590b0f8e) compiled at 2021-09-30 14:29:04 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
在进入后对高斯数据库进行一些基本的测试。
omm=# select version();
ERROR:  invalid byte sequence for encoding "UTF8": 0xef 0x3b
omm=# select version();
                                                                       version

---------------------------------------------------------------------------------------------------------------------------------
---------------------
 (openGauss 2.1.0 build 590b0f8e) compiled at 2021-09-30 14:29:04 commit 0 last mr   on x86_64-unknown-linux-gnu, compiled by g++
 (GCC) 7.3.0, 64-bit
(1 row)

omm=#  \copyright
GaussDB Kernel Database Management System
Copyright (c) Huawei Technologies Co., Ltd. 2018. All rights reserved.

omm=# \l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
 omm       | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
 template1 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
(4 rows)

omm=# \du
                                                              List of roles
 Role name |                                                    Attributes                                                    | M
ember of
-----------+------------------------------------------------------------------------------------------------------------------+--
---------
 gaussdb   | Sysadmin                                                                                                         | {
}
 omm       | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {
}

omm=# \db
      List of tablespaces
    Name    | Owner | Location
------------+-------+----------
 pg_default | omm   |
 pg_global  | omm   |
(2 rows)

omm=# \dn
    List of schemas
      Name      | Owner
----------------+-------
 blockchain     | omm
 cstore         | omm
 db4ai          | omm
 dbe_perf       | omm
 dbe_pldebugger | omm
 pkg_service    | omm
 public         | omm
 snapshot       | omm
 sqladvisor     | omm
(9 rows)

到这里使用docker安装高斯数据库的教程就结束了,希望可以帮到你~