版本:PostgreSQL 8.2.15 (Greenplum Database 4.3.7.1 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Jan 21 2016 15:51:02
1.拉取镜像
docker pull datagrip/greenplum
2.运行
mkdir -p /usr/local/greenplum/log
# 临时运行一个容器
docker run -itd -p 5432:5432 --name gpdb0 \
-e TZ=Asia/Shanghai \
datagrip/greenplum
# 查看日志,待启动完成后考到Database successfully started再执行下面的
docker logs -f gpdb0
# 拷贝配置
docker cp gpdb0:/gpdata /usr/local/greenplum
# 查看是否存在postmaster.pid,如果不存在则无法启动
ll /usr/local/greenplum/gpdata/master/gpseg-1
# 查看启动日志
cat /usr/local/greenplum/gpdata/master/gpseg-1/pg_log/startup.log
# 删除镜像
docker rm -f gpdb0
# 修改目录权限【权限必须是这些,修改就了就gg】
chown 500 -R /usr/local/greenplum/{gpdata,log}
chmod 0700 -R /usr/local/greenplum/{gpdata,log}
# 持久化配置
docker run -itd -p 5432:5432 --name gpdb0 \
-e TZ=Asia/Shanghai \
--privileged=true \
-v /usr/local/greenplum/gpdata:/gpdata \
-v /usr/local/greenplum/log:/home/gpadmin/gpAdminLogs \
datagrip/greenplum
3.进入容器
docker exec -it gpdb0 bash
4.切换用户
su - gpadmin
5.创建用户
创建一个数据库dba用户,密码设置为123456,输入两次密码
createuser -P dba
6.创建数据库
# 创建数据库: demo
createdb demo
# 连接数据库
psql demo
# 查看帮助
help
7.用户
默认用户名:
gpadmin
密码:pivotal
CREATE USER test WITH PASSWORD '123456' NOSUPERUSER;
8.添加到用户组
-- 创建角色
CREATE ROLE test_role;
-- 用户绑定角色
GRANT test_role TO dba,test;
-- 查看用户角色信息
\du
-- 查看db版本
select * from version();
-- 取消超管
alter role dba nosuperuser;
-- 设置超管
alter role dba superuser;
-- 退出
\q
9.远程访问
进入容器内部,切换至用户:pgadmin,默认是启动远程访问的,若虚修改在容器内部路径:
/gpdata/master/gpseg-1
,物理机就是:/usr/local/greenplum/gpdata/master/gpseg-1
下的pg_hba.conf
cd /gpdata/master/gpseg-1
vi pg_hba.conf
# 添加网段
host all all 0.0.0.0/0 md5
9.重启容器
# 容器内部重启
gpstop -r
gpstart
gpstart -a
docker restart gpdb0
docker exec -it gpdb0 bash
su gpadmin
10.连接测试
psql -h localhost -U dba -d demo
11.修改密码
alter user test password '1234561';