添加密钥。
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