PostgreSQL

1. 配置 docker 中的 PostgreSQL

(1). 初始化

$ sudo docker pull postgres
1

参考: https://hub.docker.com/_/postgres

(2). 创建与启动

$ sudo docker run -p 54321:5432 --name postgresql -e POSTGRES_PASSWORD=123456 -d postgres
$ sudo docker container ls

# 停止、启动 container
$ sudo docker container stop postgresql
$ sudo docker container start postgresql
1
2
3
4
5
6

注释

  • -p 54321:5432: 绑定 container 的 5432 端口到宿主机的 54321 端口。
  • --name postgresql: 生成的 container 的名字为 postgresql
  • -e POSTGRES_PASSWORD=123456: 设置密码为 123456 (默认账号为 postgres) (-e 表示设置环境变量)
  • -d: detached mode。参考: https://docs.docker.com/engine/reference/run/#detached--d

默认的用户名为 postgres,默认的数据库名与默认用户名一样,也是 postgres。参考官方文档。

(3). volume 持久化

$ sudo docker volume create postgres_volume

# 参考官方文档(https://hub.docker.com/_/postgres/),PGDATA 默认存储在: /var/lib/postgresql/data
$ sudo docker run -p 54321:5432 --name postgresql -e POSTGRES_PASSWORD=123456 -v postgre-volume:/var/lib/postgresql/data -d postgres
1
2
3
4

2. 客户端 pgAdmin

  • 下载
    • https://www.pgadmin.org/download/

3. 数据类型

Name Storage Size Range
SMALLSERIAL 2 bytes (长度对应 Java 中的 Short) 1 to 32,767
SERIAL 4 bytes (长度对应 Java 中的 Integer) 1 to 2,147,483,647
BIGSERIAL 8 bytes (长度对应 Java 中的 Long) 1 to 922,337,2036,854,775,807

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(200) NOT NULL,
    password VARCHAR(1000) NOT NULL,
    enabled bool NOT NULL DEFAULT TRUE
)

CREATE TABLE user_roles (
    id SERIAL PRIMARY KEY,
    username VARCHAR(200) NOT NULL,
    role VARCHAR(200) NOT NULL
)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • user 是 PostgreSQL 的保留字,如果要创建一个名为 user 的表,需要用双引号,而且以后引用时都用双引号。所以不建议命名表名为 user
最近更新: 8/18/2019, 10:15:29 PM