银河麒麟通过 docker 离线安装 opengauss 数据库(单节点部署)
- 准备合适的 docker 镜像
- 通过文件传输工具将镜像传输至服务器
- 加载镜像文件
docker load -i opengauss_3.0.0.tar
正常应该是输出类似这样的内容:
6f37ca73c74f: Loading layer [==================================================>] 75.16MB/75.16MB
fbf2d42d54b9: Loading layer [==================================================>] 57.7MB/57.7MB
c777acc6f953: Loading layer [==================================================>] 20.48kB/20.48kB
a8d219ac51aa: Loading layer [==================================================>] 337.4MB/337.4MB
63f854361eb8: Loading layer [==================================================>] 20.99kB/20.99kB
Loaded image: enmotech/opengauss:5.0.0
如果提示下面的内容,可能是你的 docker 没有启动
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
systemctl start docker
- 验证镜像是否加载成功,返回如下情况即为成功,下面的
enmotech/opengauss
是你的镜像名称,不同地方下载的镜像该名称可能不同,这个名称后面会用到
docker images ls
# 下面这个是正常输出
REPOSITORY TAG IMAGE ID CREATED SIZE
enmotech/opengauss 5.0.0 c69c8aebefe8 2 years ago 465MB
- 创建挂载数据目录
mkdir -p /example/opengauss/data
- 启动容器,可以根据你的需要修改容器名称(
--name
后面的参数),修改数据库密码,修改映射端口(-p
参数的冒号前面的端口)
docker run \
> --name opengauss \
> --privileged=true \
> -d \
> -e GS_PASSWORD=your-password \
> -p 1234:5432 \
> -v /example/opengauss/data:/var/lib/opengauss/data \
> enmotech/opengauss:5.0.0
成功后会输出一长串容器ID(如果成功后又快速退出了也会,这个不代表已经成功了)
7. 查看容器运行状态,如果 STATUS
是 UP,就是启动成功了。如果你看到的是 Exited,那说明启动后又退出了,没有成功跑起来。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
31858d593b66 enmotech/opengauss:5.0.0 "entrypoint.sh gauss…" 2 months ago Up 4 days 0.0.0.0:14869->5432/tcp, :::1234->5432/tcp opengauss
一种可能的错误情况
如果你看到的是 Exited,那说明启动后又退出了,没有成功跑起来。docker ps -a | grep opengauss
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b87a6e93e3f 478a00294137 "entrypoint.sh" 35 seconds ago Exited (1) 34 seconds ago opengauss
可以用以下命令查看情况:
# docker logs 容器ID
docker logs 1b876e93e3f
如果你得到的是如下的提示:
Primary host is empty, at least one primary and one standby host are needed
那有可能是你的镜像不支持单节点部署,建议你更换镜像文件
- 通过以下命令就可以进入容器了
docker exec -it opengauss /bin/bash
如果你觉得这个命令太长,可以配置一个简化命令
vim ~/.bashrc
# 添加别名
alias enter-gauss='docker exec -it opengauss /bin/bash'
source ~/.bashrc
以上步骤完成后,你就可以直接使用 enter-gauss
进入容器
- openGauss安装时默认会创建omm超级用户,容器内切换到该用户
su - omm
- 输入
gsql
就可以进入数据库了,之后的赋权操作都需要在此处进行,\q
可以退出数据库
注意:默认是不允许 omm 用户远程连接数据库的
可能会提示以下内容:
Forbid remote connection with initial user.
参考资料
本文来自博客园,作者:MGTPEZ,转载请注明原文链接:https://www.cnblogs.com/mgtpez/p/19011221