1.创建容器
#创建数据没有挂在的容器
docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Enmo@123 -p 8090:5432 enmotech/opengauss:latest
2. 进入容器,并切换omm用户,使用gsql连接高斯数据库
[root@ansible ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a286ab2c0ce enmotech/opengauss:latest "entrypoint.sh gauss…" About a minute ago Up About a minute 0.0.0.0:8090->5432/tcp, :::8090->5432/tcp opengauss
[root@ansible ~]# docker exec -it opengauss sh
# su - omm
omm@5a286ab2c0ce:~$ 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=#
3. 在进入后对高斯数据库进行一些基本的测试
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 | Member of
-----------+------------------------------------------------------------------------------------------------------------------+-----------
gaussdb | Sysadmin | {}
omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}
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)
omm-#
4.数据库验证
参数的讲解:
GS_PASSWORD
在你使用openGauss镜像的时候,必须设置该参数。该参数值不能为空或者不定义。该参数设置了openGauss数据库的超级用户omm以及测试用户gaussdb的密码。openGauss安装时默认会创建omm超级用户,该用户名暂时无法修改。测试用户gaussdb是在docker-entrypoint.sh中自定义创建的用户。
openGauss镜像配置了本地信任机制,因此在容器内连接数据库无需密码,但是如果要从容器外部(其它主机或者其它容器)连接则必须要输入密码。
openGauss的密码有复杂度要求,需要:密码长度8个字符以上,必须同时包含英文字母,数字,以及特殊符号
GS_NODENAME
指定数据库节点名称 默认为gaussdb
GS_USERNAME
指定数据库连接用户名 默认为gaussdb
GS_PORT
指定数据库端口,默认为5432。
第二. 创建高斯数据库,永久挂载数据卷
2.1创建数据永久挂在的容器
#创建临时容器,目的是为了复制容器中的配置文件
docker run --name opengauss1 --privileged=true -d -e GS_PASSWORD=Enmo@123 -p 8091:5432 enmotech/opengauss:latest
mkdir -p /home/openGauss
docker cp opengauss1:/var/lib/opengauss/data/postgresql.conf /home/openGauss/postgresql.conf #从opengauss容器中拷贝配置文件到宿主机
docker cp opengauss1:/var/lib/opengauss/data/pg_hba.conf /home/openGauss/pg_hba.conf #从opengauss容器中拷贝配置文件到宿主机
docker rm -f opengauss1 #删除临时容器
#数据永久挂载
docker run --name opengauss_data --privileged=true -d -e GS_PASSWORD=Enmo@123 -p 5432:5432 \
-v /home/openGauss:/var/lib/opengauss \
enmotech/opengauss:latest
2.2 验证利用软件登录高斯数据库
用户:gaussdb
密码:Enmo@123
初始数据库: postgres