在以下官方网站选择版本和系统信息,根据官方的安装方式操作
[https://www.postgresql.org/download/linux/redhat/]
安装pg仓库rpm包
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装postgreSQL客户端和服务
yum install postgresql95
yum install postgresql95-server
安装以后系统会默认创建postgres用户,通过以下命令可查看到
cat /etc/passwd
默认安装目录在/usr/下的pgsql-9.5
执行初始化数据库命令,此时默认数据目录存放在/var/lib/pgsql/9.5下
# 执行后会在/var/lib/pgsql/9.5下生成data目录
/usr/pgsql-9.5/bin/postgresql95-setup initdb
我们一般会通过以下方式自定义数据库的数据存放目录,不执行第4步骤
创建数据存放位置,修改目录所属组和权限归postgres用户所有
mkdir -p /APP/pgsql/data
chown -R postgres:postgres pgsql/data
chown -R postgres:postgres pgsql
chmod -R 750 pgsql/data
用root给postgres用户设置密码
# 输入两次密码即可更新
passwd postgres
登陆到postgres用户,初始化数据库,使用我们自定义的数据目录
# 切换到postgres用户初始化操作(默认的数据位置直接root执行第4步骤即可)
su - postgres
# 执行以下命令会在/APP/pgsql/data/产生很多数据文件
/usr/pgsql-9.5/bin/initdb -D /APP/pgsql/data/
配置开机自启和远程登陆,修改默认端口
初始化数据库后会在数据目录/APP/pgsql/data下生成postgresql.conf核心配置文件,该文件是postgres服务的配置文件,数据目录在哪里该文件就在哪里,可用root直接执行以下操作配置
修改/APP/pgsql/data/postgresql.conf文件中的默认端口和监听地址(可远程登陆)
#listen_addresses = 'localhost' 改为以下配置
listen_addresses = '*'
# 默认端口改为其它端口
#port = 5432
port = 54321
修改/APP/pgsql/data/pg_hba.conf文件,加入最后一行配置,表示可远程登陆
host all all 0.0.0.0/0 md5
如下图:
设置开机自启
systemctl enable postgresql-9.5
安装postgis扩展支持地理信息数据处理函数模块
#安装postgis
#对应的版本为 postgis24_10 postgis24_10-client
yum install postgis24_95 postgis24_95-client
# 安装扩展工具,这里安装的是9.5版本为95,如果是10版本则为ogr_fdw10
yum install ogr_fdw95 -y yum install pgrouting_95 -y
启动数据库
systemctl stop postgresql-9.5
# 查看运行状态
systemctl status postgresql-9.5
使用postgres用户登陆postgres默认数据库,并设置登陆密码
/usr/pgsql-9.5/binpsql -U postgres -p 54321-d postgres
postgres=#
#给postgres用户设置密码,远程登陆postgres用户时即使用该密码
postgres=# ALTER USER postgres WITH PASSWORD 'test123';
在postgres=#控制台创建数据库,并切换到该库创建gis扩展
CREATE DATABASE test_db OWNER postgres;
# 切换到该库下面后创建gis扩展
\c test_db
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION ogr_fdw;
创建postgis扩展包错解决
加载共享库时出错:libpq.so.5:无法打开共享对象文件:没有这样的文件或目录(Error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory)
# 复制postgreSQL安装目录下的库文件到/usr/lib64下即可(32位系统复制到/usr/lib下)
ln -s /usr/pgsql-9.4/lib/libpq.so.5 /usr/lib64/libpq.so.5
配置环境变量直接使用pgsql命令
vim /etc/profile
# postgres
PGDATA=/APP/pgsql/data
PATH=/usr/pgsql-9.5/bin/:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-9.5/lib
export PGDATA PATH
# 立即生效
source /etc/profile
数据库的备份和恢复
1.备份
pg_dump -h localhost -p 8001 -U postgres axatp_poc > ./pgDataBackup/axatp_poc.bak
2.恢复
# 前提是axatp_poc库以创建
psql -h localhost -p 54321 -U postgres -d axatp_poc < ./axatp_poc.bak
以上