0%

PostgreSQL入门篇

PostgreSQL简介

PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.

更多内容参考PostgreSQL官网PostgreSQL Documentation

Harbor中使用的数据库就是PostgreSQL,因此本文对PostgreSQL(pg)进行一个简单的学习,主要参考PostgreSQL 菜鸟教程

Harbor中的pg

1、进入pg容器
docker exec -it harbor-db /bin/bash

2、登录pg
psql -U postgres -h postgresql -p 5432
默认密码为 root123 ,实际密码查看harbor.yml中的配置。

3、查看帮助

1
2
\help
\help select

4、查看数据库,切换数据库,查看表

1
2
3
4
\l
\c registry;
\d
\dt

5、查看表结构

1
2
\d registry;
\d replication_policy;

6、查看表数据

1
2
select * from registry;
select * from replication_policy;

可以看到,查看表数据的方法和mysql完全相同。
实际上,pg支持标准的sql语法,因此增删查改的语法参考《MySQL常用命令》即可。

安装pg

如果单独使用pg,该怎样安装?下面学习使用docker安装pg的方法。

1、登录dockerhub查看需要的pg版本

2、下载pg镜像(以pg12.2为例)
docker pull postgres:12.2

3、启动pg服务

1
2
3
4
5
6
docker run --name vk-pg -d \
-p 5432:5432 \
-e POSTGRES_PASSWORD=voidking \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /opt/postgresql/data:/var/lib/postgresql/data \
postgres:12.2

以上命令:

  • 命名容器为vk-pg,后台运行
  • 映射宿主机5432端口到容器5432端口
  • 设置pg数据库密码和数据存放目录
  • 映射宿主机/opt/postgresql/data目录(不需要提前创建目录)到容器/var/lib/postgresql/data目录

更高级的启动命令参考How to use this image

4、验证安装
docker ps
gp启动正常的话就可以看到vk-pg容器。
如果启动失败,可以使用docker logs vk-pg查看失败原因并进行解决。

使用nc命令验证:

1
2
yum install nc
nc -v localhost 5432

5、登录pg

1
2
3
docker exec -it vk-pg /bin/bash
psql -U postgres
psql -U postgres -h localhost -p 5432

啊嘞,直接登录进去了,不需要密码?
这是因为,pg镜像在本地设置了信任身份验证,因此从容器内连接时不需要密码。

但是,如果从其他主机/容器进行连接,则需要输入密码。
比如在宿主机(系统为centos7)上登录pg:

1
2
3
yum list | grep postgresql
yum install postgresql.x86_64
psql -U postgres -h localhost -p 5432

这次必须输入正确的密码才能登录。

以上,pg安装配置完成。