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

news2024/12/26 2:27:00

文章目录

  • (一)背景
  • (二)安装
    • (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-world

Hello 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 the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share 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.coloradmin.cn/o/1624841.html

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

相关文章

docker安装【zookeeper】【kafka】【provectuslabs/kafka-ui】记录

目录 1.安装zookeeper:3.9.2-jre-172.安装kafka:3.7.03.安装provectuslabs/kafka-ui (选做)新环境没有jdk,安装jdk-17.0.10备用 mkdir -p /export/{data,apps,logs,conf,downloads}cd /export/downloadscurl -OLk https://download.oracle.…

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

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

rust中结构体的属性默认是不能修改的,要想修改可以有两种方式

Rust中结构体里面的属性默认是不支持修改的,而且默认不是pub的,要想修改的话,有两种方式,我以为和python里面的类似呢,但是还是需要一点技术含量的。如果想在引到外部修改,需要声明pub,如果想在…

Qt xml示范

1.数据格式 #ifndef XML_DATA_H #define XML_DATA_H#include<QWidget>struct Student {int s_id;QString s_name;double s_math_score;double s_english_score;}; struct Teacher{int t_id;QString t_name;QVector<Student> t_students_v; };#endif // XML_DATA_H…

论文解读:(VPT)Visual Prompt Tuning

文章汇总 要解决的问题 大型模型应用于下游任务本身就存在挑战。最明显的(通常也是最有效的)适应策略是对预先训练好的模型进行全面的端到端微调。 动机 只微调参数的一个子集 解决的办法 只在输入空间中引入少量特定于任务的可学习参数&#xff0c;而在下游训练期间冻结…

STM32的GPIO控制寄存器开发

寄存器GPIO控制 寄存器地址 寄存器地址计算 某个寄存器地址&#xff0c;由三个参数决定&#xff1a;1、总线基地址&#xff08;BUS_BASE_ADDR&#xff09;&#xff1b;2&#xff0c;外设基于总线基地址的偏移量&#xff08;PERIPH_OFFSET&#xff09;&#xff1b;3&#xff…

书生·浦语 大模型(学习笔记-8)Lagent AgentLego 智能体应用搭建

目录 一、智能体出现的原因 二、智能体的定义 三、智能体的组成 四、Lagent 五、AgentLego 六、实战一&#xff08;Lagent&#xff09; 环境配置及安装 安装依赖 准备 Tutorial Lagent Web Demo AgentLego 使用 图片推理&#xff08;结果&#xff09;&#xff1a; …

C#基础之函数基础

函数 文章目录 1、函数基础1、概念2、函数位置3、基本语法4、实际运用5、return 2、ref 和 out1、ref 和 out 使用2、区别思考 登录 3、变长参数和参数默认值1、变长参数2、参数默认值 4、函数重载5、递归函数思考1 阶乘思考2 阶乘相加思考3 竹竿减半思考4 递归循环输出 1、函数…

diskMirror-backEnd-spring-boot | diskMirror 后端服务器 SpringBoot 版本!

diskMirror-backEnd-spring-boot diskMirror 后端服务器的 SpringBoot 版本&#xff0c;此版本中拓展了 DiskMirrorBackEnd&#xff0c;是一个完全的SpringBoot项目&#xff01; 目录 文章目录 diskMirror-backEnd-spring-boot目录我如何部署与配置docker 方式部署 diskMirro…

【树莓派】yolov5 Lite,目标检测,行人检测入侵报警

延续之前的程序&#xff1a; https://qq742971636.blog.csdn.net/article/details/138172400 文章目录 播放声音pygame不出声音怎么办&#xff08;调节音量&#xff09;树莓派上的音乐播放器&#xff08;可选&#xff09;命令行直接放歌&#xff08;尝试放mp3歌曲&#xff09; …

分类算法——模型评估(八)

1混淆矩阵 在分类任务下&#xff0c;预测结果与正确标记之间存在四种不同的组合&#xff0c;构成混淆矩阵&#xff08;适用于多分类&#xff09; TP True Possitive FN False Negative 2精确率&#xff08;Precision&#xff09;与召回率&#xff08;Recall&#xff09; 精…

第11章 Android特色开发——基于位置的服务

第11章 Android特色开发——基于位置的服务 本章中&#xff0c;将要学习一些全新的Android技术&#xff0c;这些技术有别于传统的PC或Web领域的应用技术&#xff0c;是只有在移动设备上才能实现的。 基于位置的服务&#xff08;Location Based Service&#xff09;。由于移动…

智能穿戴终端设备安卓主板方案_MTK平台智能手表PCBA定制开发

新移科技智能手表方案兼容WiFi、BLE、2~5G等多种通信能力。支持多个功能模块&#xff0c;包括&#xff1a;通话、计步、定位、睡眠监测、心率监测、血氧监测等。智能手表通过滑动与功能性按键提供高度直观的体验感受&#xff0c;从腕间即可掌控日常生活。形态支持定制包括&…

数据结构篇其二---单链表(C语言+超万字解析)

目录 前言&#xff1a; 一、顺序表的缺点和链表的引入。 二、链表概述 实现一个简单的链表 空链表的概念 三、链表的功能实现 链表的打印 链表节点的创建 链表的头插&#xff08;自上而下看完分析&#xff0c;相信你会有所收获&#xff09; 头插的前置分析 传值调用和…

【韩国】UE5的MetaHuman确实可以导入Blender进行编辑。

UE5的MetaHuman确实可以导入Blender进行编辑。根据网络上的信息&#xff0c;你可以将MetaHuman模型导出为FBX文件&#xff0c;然后在Blender中进行修改。修改完成后&#xff0c;你可以将其重新导入到Unreal Engine 5中4。请注意&#xff0c;当你在Blender中编辑模型时&#xff…

debian配置四叶草输入法

效果展示 一、前言 在linux下体验比较好的输入法只有两款&#xff1a;搜狗输入法、四叶草输入法。 ubuntu下可以成功配置搜狗输入法&#xff0c;但debian下从来没有成功过。 今天在用fcitx5 四叶草时发现VNC远程输入法会失灵&#xff0c;于是改用了ibus 四叶草&#xff0c…

Java | 冒泡排序算法实现

大家可以关注一下专栏&#xff0c;方便大家需要的时候直接查找&#xff0c;专栏将持续更新~ 题目描述 编写一个Java程序&#xff0c;实现冒泡排序算法。程序需要能够接收一个整型数组作为输入&#xff0c;并输出排序后的数组。 冒泡排序是一种简单的排序算法&#xff0c;它…

详解23种设计模式——工厂模式

工厂模式 | CoderMast编程桅杆工厂模式 设计思想 工厂模式是最常用的设计模式之一&#xff0c;属于创建型模式&#xff0c;将创建对象的权利交给了一个工厂类&#xff0c;从而提供了一种不使用构造方法的情况下创建对象的途径&#xff0c;无需指定要创建的具体类&#xff0c;将…

【可下载】CDA 1级教材《精益业务数据分析》2023最新版

CDA一级认证教材&#xff1a;《精益业务数据分析》 全面、系统地讲述业务描述性分析为企业决策行为创造价值的全流程技能&#xff0c;涵盖描述性数据分析方法、业务分析方法、数据分析结果应用方法等内容。 条理清晰的结构、通俗易懂的语言、完整立体的知识框架为读者铺开一幅…

word添加行号

打开页面设置&#xff0c;找到行号