开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情
引言
用了一段时间的 PostgreSQL 对其越发爱不释手,PgSQL 对数据类型的支持和对插件的集成,这两个功能使用起来真是无比的香,后面会逐步的介绍 PgSQL 的一些特性和功能。本文作为 PgSQL 的第一篇,先从如何安装 PgSQL 入手。
Mac 上安装
Mac 上安装 PostgreSQL 相对比较容易,通过Download PostgreSQL下载所需版本的安装包即可。
Application Stack Builder
在通过安装包安装 PostgreSQL 的最后会提示 Launch Stack Builder at exit? 那 Stack Builder 能为我们做些什么呢?查阅了官网 Using Stack Builder 发现 Stack Builder 提供了图形化界面为了简化 PostgreSQL 相关的模块或者插件(如 PostGIS)的下载或安装,它的优势是可以自动的对插件等模块所需的依赖进行安装。
如果只是使用 PostgreSQL 数据库则不需要勾选了,如果其的一些工具、插件、附件有所依赖的,可以选择通过 Stack Builder 进行安装。
pgAdmin4
安装完成之后打开 pgAdmin4 ——官方客户端工具,进行数据库的连接和基本操作。
点击 PSQL Tool 执行如下脚本,进行 postgis 插件安装,检查 Extensions 发现安装成功。
CREATE EXTENSION postgis;
Linux Centos 下安装 PostgreSQL
这里选择了 postgreSQL12 版本进行安装命令的整理
导入 yum 源 安装 PostgreSQL 服务
$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
$ sudo yum install -y postgresql12 postgresql12-server
新建数据目录并进行授权
$ sudo su
$ mkdir -p /data/postgresql/data
# 授权 postgreSQL 默认用户 postgres
$ chown -R postgres:postgres /data/postgresql/data
# 切换到postgres用户,初始化,指定数据目录
$ su - postgres
$ /usr/pgsql-12/bin/initdb -D /data/postgresql/data
# 修改postgresql的system.service文件
$ vim /usr/lib/systemd/system/postgresql-12.service
# 修改配置文件 PGDATA 目录
Environment=PGDATA=/data/postgresql/data/
# 重新加载系统服务
$ systemctl daemon-reload
启动 PostgreSQL 服务
$ sudo systemctl start postgresql-12
#设为开机启动
$ sudo systemctl enable postgresql-12
修改密码
$ sudo su postgres
$ psql
ALTER USER postgres WITH PASSWORD 'qweasd123';
访问控制
#开放端口
$ sudo firewall-cmd --add-port=5432/tcp --permanent
$ sudo firewall-cmd --reload
#修改配置文件 监听地址
$ sudo vi /data/postgresql/data/postgresql.conf
#默认listen_addresses配置是注释掉的,所以可以直接在配置文件开头加入该行
listen_addresses='*'
#修改配置文件 /data/postgresql/data/pg_hba.conf
#在文件尾部加入
host all all 0.0.0.0/0 trust
#重启PostgreSQL服务
$ sudo systemctl restart postgresql-12
安装 Extensions
主要是安装 postgis 和 pgRouting
# 安装 extensions yum 源
$ sudo yum install pgrouting_12
$ sudo yum -y install epel-release
$ sudo yum -y install postgis30_12 postgis30_12-utils postgis30_12-client
# 切换用户
$ su - postgres
$ psql
-- 执行 sql 语句
CREATE EXTENSION postgis;
-- enable raster support (for 3+)
CREATE EXTENSION postgis_raster;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
安装验证
安装验证如 Mac 上的安装验证步骤,打开 pgAdmin4 进行数据的连接和数据操作