PostgreSQL

添加密钥。

sudo curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

添加仓库。

lsb_release -c
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

安装 PostgreSQL。

sudo apt update
sudo apt install postgresql-11

配置 .pgpass 文件。

连接数据库时,psql 会强制要求输入密码,为省略输入密码的步骤,提前创建 .pgpass 文件。

切换到 garden-user

sudo su - garden-user

编辑 .pgpass 文件。

vi ~/.pgpass

.pgpass 文件内容如下:

# 数据库garden的连接信息
localhost:5432:garden:postgres:postgres

# 数据库airflow的连接信息
localhost:5432:airflow:postgres:postgres

变更 .pgpass 文件的权限。

chmod 600 ~/.pgpass

外部连接许可配置(可选)

为从外部连接,进行连接许可的配置。

编辑 postgresql.conf。

sudo vi /etc/postgresql/11/main/postgresql.conf

第57行【# - Connection Settings -】附近,添加 listen_addresses = ‘*',接受全部通信。

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
listen_addresses = '*'

编辑 pg_hba.conf。

 sudo vi /etc/postgresql/11/main/pg_hba.conf

第91行【# IPv4 local connections:】附近,添加受理认证的 IP/IP 范围。

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             0.0.0.0/0                 md5

firewall 开启时,添加 port 许可。

sudo ufw allow 5432/tcp

设置 postgres 用户的密码。

使用 psql 连接 PostgreSQL。

sudo -u postgres psql

显示如下:

psql (11.12 (Ubuntu 11.12-1.pgdg18.04+1))
"help" 显示帮助。

postgres=#

将 postgres 用户的密码设为 “postgres”。

\password postgres

创建数据库「garden」。

CREATE DATABASE garden;

连接数据库「garden」。

\c garden

执行下列 2 条 SQL,在数据库「garden」中创建表。

CREATE TABLE public.drivingdata
(
    id bigint NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 9223372036854775807 CACHE 1 ),
    sourcetype character varying(255) COLLATE pg_catalog."default",
    sourceuri bytea,
    CONSTRAINT drivingdata_pkey PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.drivingdata
    OWNER to postgres;
CREATE TABLE public.importeddata
(
    id bigint NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 9223372036854775807 CACHE 1 ),
    drivingdataid bigint,
    lat double precision,
    latmax double precision,
    latmin double precision,
    lon double precision,
    lonmax double precision,
    lonmin double precision,
    mapid character varying(255) COLLATE pg_catalog."default",
    measurement character varying(255) COLLATE pg_catalog."default",
    status integer,
    CONSTRAINT importeddata_pkey PRIMARY KEY (id),
    CONSTRAINT importeddata_measurement UNIQUE (measurement)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.importeddata
    OWNER to postgres;

退出 psql,从 PostgreSQL 断开。

\q

启动 PostgreSQL 服务器。

sudo service postgresql start