用docker方式安装openGauss数据库的事项记录

文章目录

  • (一)背景
  • (二)安装
    • (2.1)安装docker
    • (2.2)安装openGauss
  • (三)运行
    • (3.1)运行openGauss镜像
    • (3.2)连接openGauss
      • (3.2.1)内部gsql连接
      • (3.2.2)外部客户端工具连接
    • (3.3)停止openGauss容器
    • (3.4)重新运行openGauss容器
  • (四)额外
    • (4.1)移除容器

(一)背景

差不多2年前吧进行了数据库的从Oracle迁移到国产化数据库的工作。
比如这篇就记录了一些情况。

但实际上后面都是弄的中兴GoldenDB(MySQL)那边。
然后在GoldenDB那边遇到的若干神奇问题以及性能问题,更加印证了Oracle的遥遥领先。

现在又准备开始华为这边,但我已经忘得差不多了啊,可恶……
看了看openGauss官网,想了想懒得动之前装好的openGauss3.0.0数据库,考虑到环境互相影响,决定用docker来装目前稳定的5.0.1 LTS(目前已正式发行 6.0.0 RC1 版)吧。
在这里插入图片描述

(二)安装

(2.1)安装docker

我已经有了所以略……
如果没有的话就,我的是CentOS7,需要添加yum的docker的源。

问:docker-ce为什么有个ce后缀?
答:CE (Community Edition) 社区版。

> sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

然后安装docker:

> sudo yum install -y docker-ce

装好了看看版本:

> docker -v
Docker version 25.0.4, build 1a576c5

测试看能不能用:

> docker run hello-worldHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

至此hello world镜像能运行了,说明docker安装无误。
如果哪一步报错,就设法解决呗。

(2.2)安装openGauss

其实已经没有安装的过程了。
仅仅是拉取镜像(为啥openguass/opengauss:5.0.1不存在呢?):

> docker pull enmotech/opengauss:5.0.1

我也试了latest居然版本是5.1.0,既然不是官网的LTS,还是指定版本吧。
然后确认下镜像(我这有几个别的东西请无视):

> docker images
REPOSITORY           TAG       IMAGE ID       CREATED         SIZE
emqx/emqx            5.5.1     f9a9d20bd75c   7 weeks ago     476MB
enmotech/opengauss   5.0.1     1aefc6a6f5a5   3 months ago    466MB
dgraph/dgraph        latest    3a69d4681409   8 months ago    178MB
hello-world          latest    d2c94e258dcb   11 months ago   13.3kB
dgraph/ratel         latest    98e9777f3b57   2 years ago     26.7MB

(三)运行

(3.1)运行openGauss镜像

首次运行会创建这个镜像的容器,名字我们指定的是opengauss

> sudo docker run --name opengauss --privileged=true -d -e GS_PASSWORD=你的密码包含字母符号数字 -p 5432:5432 enmotech/opengauss:5.0.1

注意2点:

  1. 通过GS_PASSWORD设置个相对复杂的密码(包含字母符号数字),否则登不上啊。
  2. 通过-p参数给个端口映射,外面才能访问(如果默认5432外面在用,那么换个比如8888:5432映射)。

确认下在运行么:

> docker ps
CONTAINER ID   IMAGE                      COMMAND                   CREATED         STATUS         PORTS                                       NAMES
20f56e169910   enmotech/opengauss:5.0.1   "entrypoint.sh gauss…"   3 minutes ago   Up 3 minutes   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   opengauss

(3.2)连接openGauss

(3.2.1)内部gsql连接

如果没有刚才-p的端口映射,那么就只能进去再连接。
那个omm用户也是默认的。
镜像配置了本地信任机制,因此在容器内连接数据库无需密码。

> docker exec -it opengauss sh
# su - omm
omm@20f56e169910:~$ gsql
gsql ((openGauss 5.0.1 build 33b035fd) compiled at 2023-12-15 19:51:49 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.omm=# \q
omm@20f56e169910:~$ exit
logout
# exit
> 

现在整个流程完成了,数据库确实是openGauss 5.0.1 build 33b035fd版本。
但是要正常用还是得从外面和网络连接它。

(3.2.2)外部客户端工具连接

回到亲切的Windows图形界面,打开数据库客户端工具。

  • 设置数据库类型为PostgreSQL,主机,端口。
  • 设置连接数据库名字为postgres (PG默认的)
  • 设置用户名为gaussdb (默认的)
  • 设置密码为“刚才你指定的那个挺复杂的密码”。

PS:如果没有刚才-p的端口映射,外面是连不了的。

在这里插入图片描述
连接试试,连上了没问题:
如果还是连不上估计得看看防火墙,ping下port通么(胡言乱语了)。
在这里插入图片描述
这时候就可以做常规操作了。
比如建用户,建表等。

(3.3)停止openGauss容器

在首次运行docker的镜像时,创建了容器,我们查询并停止这个容器。
根据刚才docker ps 查询到的信息,我们停止这个容器的运行。

> docker stop 20f56e169910
20f56e169910
> 

再ps看看应该没有openGauss的容器在运行了。
这时候我们可以查询全部容器确认运行状态,确实是Exited状态。

> docker ps -a
CONTAINER ID   IMAGE                      COMMAND                   CREATED             STATUS                         PORTS     NAMES
20f56e169910   enmotech/opengauss:5.0.1   "entrypoint.sh gauss…"   54 minutes ago      Exited (0) 2 seconds ago                 opengauss
915dedb7d037   hello-world                "/hello"                  About an hour ago   Exited (0) About an hour ago             trusting_nobel
a52db001f7a8   emqx/emqx:5.5.1            "/usr/bin/docker-ent…"   5 weeks ago         Exited (0) 5 weeks ago                   emqx
abec43d19cd2   dgraph/dgraph:latest       "dgraph zero --my=ze…"   6 weeks ago         Exited (0) 5 weeks ago                   shion_zero_1
374538787e98   dgraph/ratel:latest        "dgraph-ratel"            6 weeks ago         Exited (2) 5 weeks ago                   shion_ratel_1
5dd928033303   dgraph/dgraph:latest       "dgraph alpha --secu…"   6 weeks ago         Exited (0) 5 weeks ago                   shion_server_1
a4b606382d1c   dgraph/dgraph:latest       "dgraph"                  6 weeks ago         Exited (0) 6 weeks ago                   dgraph
e5c8c8e1cd6e   dgraph/dgraph:latest       "dgraph alpha --my=a…"   6 weeks ago         Exited (0) 6 weeks ago                   shion_alpha_1

(3.4)重新运行openGauss容器

还是那个容器ID:

> docker restart 20f56e169910
20f56e169910

再用工具看看里面的表数据,重新运行成功了。
关于容器重启和其它的可以参考这个文章。

(四)额外

(4.1)移除容器

⚠️删了就没了哦!!!

容器需要停止后才能删除。

> docker stop 20f56e169910
20f56e169910
> docker rm 20f56e169910
20f56e169910

这样容器就没了,那么如果再次运行openGauss的镜像,会创建一个新的容器。
你之前的表和数据,随着旧容器的删除,就都丢失了。。。

怕理解错了,所以加了这小段。


至于镜像-容器-数据卷,自动重启等等。网上资料很多,不在此继续讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

30 OpenCV 点多边形测试

文章目录 点多边形测试pointPolygonTest示例 点多边形测试 pointPolygonTest pointPolygonTest( InputArray contour,// 输入的轮廓 Point2f pt, // 测试点 bool measureDist // 是否返回距离值,如果是false,1表示在内面,0表示在边界上&a…

白嫖游戏指南,Epic喜加二:《INDUSTRIA》《LISA: Definitive Edition》

前言 Epic喜加二:《INDUSTRIA》《LISA: Definitive Edition》《INDUSTRIA》简介: 《LISA: Definitive Edition》简介: 前言 接下来有时间会分享一些游戏相关可以白嫖的资源,包括游戏本体、游戏素材资源等等。 有需要的小伙伴可以…

ABAP json解析使用引用代替预定义数据结构

背景:在解析JSON数据时,通常会事先为定义相应的ABAP数据结构。但是,当遇到一些结构纵深较为复杂的情况时,会比较麻烦。 处理:使用引用类型来定义结构中的纵深部分来达到“省事”的目的,缺点在于访问时需要使…

零拷贝的几种实现

mmapwrite() sendfile系统调用 sendfile SG-DMA

Linux I2C(二) - I2C软硬件架构

1,I2C的总线拓扑 2,I2C S/W topology linux kernel I2C framework使用如下的软件拓扑抽象I2C硬件(我们可以一起领会一下其中的“设备模型”思想): 1)platform bus(/sys/bus/platform&#xff0…

excel文件导入dbeaver中文乱码

1.将excel文件进行另存为,保存类型选择【CSV】 2.选择【工具】–>【web选项】–> 【编码】–> 【简体中文(GB18030)】 3.在DBeaver进行数据导入 直接导入应该就可以,如果不行的话按下面处理。 选择【导入数据——选择cs…

Python函数小知识

目录 一、函数的定义和调用 二、函数参数 三、函数作用域 四、递归函数和匿名函数 一、函数的定义和调用 def 函数名(参数): 自定义函数可以分为有参函数和无参函数 。 函数的作用: 在Python中定义函数可以提高代码的复用率,避免重复的代码,…

PLL深度解析第一篇——PLL的知识图谱

在硬件电路中,时钟就像心脏一样,在时钟的节拍下,不同的芯片、不同的电路、不同的接口都可以有序的进行工作或者通信(类似流水线一样,必须有节奏的运行)。 但是在芯片中,不同的模块和接口工作的频…

解决Jmeter 4.x 请求到elasticsearch 中文乱码的问题

文章目录 前言解决Jmeter 4.x 请求到elasticsearch 中文乱码的问题 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话&#…

C语言 | Leetcode C语言题解之第52题N皇后II

题目: 题解: struct hashTable {int key;UT_hash_handle hh; };struct hashTable* find(struct hashTable** hashtable, int ikey) {struct hashTable* tmp NULL;HASH_FIND_INT(*hashtable, &ikey, tmp);return tmp; }void insert(struct hashTabl…

NASA数据集——2018-2024年VIIRS/NOAA20 深蓝 3 级每日气溶胶数据,1x1 度网格

VIIRS/NOAA20 Deep Blue Level 3 daily aerosol data, 1 degree x 1 degree grid 简介 联合极地卫星系统(JPSS)系列 NOAA-20 仪器的可见红外成像辐射计套件(VIIRS)NASA 标准三级(L3)每日深蓝气溶胶产品提…

2023最新!Git2.40.0于win10环境下的安装

2023最新!Git2.40.0于win10环境下的安装 git官网地址:https://git-scm.com/download/win/ 导航 文章目录 2023最新!Git2.40.0于win10环境下的安装导航一、下载Git二、安装Git三、检验 一、下载Git Git官网选择自己所需的版本下载 二、安装…

汕头联想 ibm x3500 M5服务器上门维修记录

汕头联想服务器现场检修;汕尾IBM服务器故障维修;揭阳戴尔服务器维修;汕头ERP服务器维修;潮阳地区各种服务器故障维修;各类服务器主板齐全; 分享一例从东莞到汕头某染料厂维修ibm system x3500 M5服务器的真…

使用composer开发自己的扩展包

前言 日常的开发中我们经常用到composer去安装其他人封装好的扩展包,如果你有好的功能代码想分享给其他人使用,就可以使用composer打包成扩展包。其他人用composer安装后就可以使用你的扩展包了。这篇文章教你如何打包自己的composer扩展包。 1.新建仓…

【线性代数 C++】求逆矩阵

对于 n n n阶矩阵 A A A,如果有 n n n阶矩阵 B B B,使 A B B A E ABBAE ABBAE,则说 A A A是可逆的,并把 B B B称为 A A A的逆矩阵. A A A的逆矩阵记作 A − 1 A^{-1} A−1,则 B A − 1 BA^{-1} BA−1.若 ∣ A ∣ ≠…

idea创建完项目如何隐藏不重要的文件

如果您不打算直接使用这些脚本,而是更倾向于通过IDEA的内置工具来运行Maven命令,那么您可以选择隐藏这些文件。但是,隐藏这些文件并不会影响它们的功能,只是在项目视图中不再显示它们。 1.转到 File > Settings(Wi…

创建一个区块链,是由三个节点组成的去中心化网络。

目录 一、准备工作: 1、创建三个python文件: 2、创建nodes.json文件 3、transaction.json文件 4、打开三个控制台 二、在三个节点上进行交互。 二、添加交易发布请求(a向b发送10000coin) 一、准备工作: 1、创建…

LeetCode - 611.有效三角形个数

题目链接 LeetCode - 611. 有效三角形的个数 动画解释 代码解释 class Solution { public:int triangleNumber(vector<int>& nums) {sort(nums.begin(),nums.end());int cout 0;int fix nums.size()-1;while(fix>1){int left 0;int right fix-1;while(left &l…

[集群聊天项目] muduo网络库

目录 网络服务器编程常用模型什么是muduo网络库什么是epoll muduo网络库服务器编程 网络服务器编程常用模型 【方案1】 &#xff1a; accept read/write 不是并发服务器 【方案2】 &#xff1a; accept fork - process-pre-connection 适合并发连接数不大&#xff0c;计算任…