PostgreSQL 下载网址
https://www.postgresql.org/download/
https://www.postgresql.org/ftp/source/
PostGIS 下载网址
https://postgis.net/install/
兼容信息
https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS
PostgreSQL
安装
创建 postgres 用户:
adduser postgres
passwd postgres
文件:
- postgresql-10.23-1-linux-x64-binaries.tar.gz
mkdir -p /usr/pgsql
cd /usr/pgsql
# 上传至上述目录
tar -zxf postgresql-10.23-1-linux-x64-binaries.tar.gz
mv /usr/pgsql/pgsql /var/lib/
mkdir -p /var/lib/pgsql/{data,log}
数据库文件目录为 /var/lib/pgsql/data
,注意检查磁盘挂载空间是否够用。
赋权:
chown -R postgres.postgres /var/lib/pgsql
chmod -R 755 /var/lib/pgsql
环境变量:
vi /etc/profile
添加以下内容:
export PGHOME=/var/lib/pgsql
export PGDATA=$PGHOME/data
export PATH=$PATH:$PGHOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib
重新加载系统环境变量:
source /etc/profile
配置
初始化数据库:
su postgres
cd /var/lib/pgsql/bin
./initdb -E utf8 -D $PGDATA
修改配置:
vi /var/lib/pgsql/data/pg_hba.conf
找到如下内容:
host all all 127.0.0.1/32 trust
将其修改为:
host all all 0.0.0.0/0 trust
修改配置:
vi /var/lib/pgsql/data/postgresql.conf
打开或者修改配置:
listen_addresses = '*'
max_connections = 1000
log_destination = 'stderr'
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_duration_statement = 3000
配置开机自启(注意恢复 root 身份):
vi /etc/rc.local
添加内容:
su postgres -c 'pg_ctl start'
pg_ctl 相关命令:
pg_ctl start
pg_ctl stop
pg_ctl restart
pg_ctl status
PostGIS
拷贝以下目录及文件至 /usr/pgsql
。
文件:
- depend
- geos-3.7.3.tar.bz2
- proj-6.1.1.tar.gz
- gdal-2.4.2.tar.gz
- postgis-2.5.3.tar.gz
注意按照顺序安装。
depend:
depend 目录下有 4 个目录,按照目录编号,以此进入 4 个目录执行安装:
rpm -ivh --replacefiles *.rpm --force --nodeps
geos:
cd /usr/pgsql
tar -jxf geos-3.7.3.tar.bz2
cd geos-3.7.3
./configure --prefix=/var/lib/geos-3.7.3
make
make install
proj:
cd /usr/pgsql
tar -zxf proj-6.1.1.tar.gz
cd proj-6.1.1
./configure --prefix=/var/lib/proj-6.1.1
make
make install
gdal:
cd /usr/pgsql
tar -zxf gdal-2.4.2.tar.gz
cd gdal-2.4.2
./configure --prefix=/var/lib/gdal-2.4.2 --with-pg=/var/lib/pgsql/bin/pg_config --with-proj=/var/lib/proj-6.1.1
make
make install
postgis:
更新动态链接库:
vi /etc/ld.so.conf
追加如下内容:
/var/lib/pgsql/lib
/var/lib/proj-6.1.1/lib
/var/lib/gdal-2.4.2/lib
/var/lib/geos-3.7.3/lib
刷新动态链接库:
ldconfig
安装:
cd /usr/pgsql
tar -zxf postgis-2.5.3.tar.gz
cd postgis-2.5.3
./configure --with-gdalconfig=/var/lib/gdal-2.4.2/bin/gdal-config --with-pgconfig=/var/lib/pgsql/bin/pg_config --with-geosconfig=/var/lib/geos-3.7.3/bin/geos-config --with-projdir=/var/lib/proj-6.1.1
make
make install
启动服务
注意以 postgres 用户使用 pg_ctl 命令。
启动 postgres,进入 CLI:
su postgres
pg_ctl start
# 执行后进入 postgres CLI
psql -U postgres
# 设置密码
\password
# 退出
\q
在 postgres CLI 中创建 postgis 扩展:
psql -U postgres
\c postgres
create extension postgis;
\q
完整对话内容如下展示:
[postgres@localhost ~]$ psql -U postgres
psql.bin (10.23)
Type "help" for help.
postgres=# \c postgres
You are now connected to database "postgres" as user "postgres".
postgres=# create extension postgis;
CREATE EXTENSION
postgres=# \q