CentOS安装postgresql并扩展postgis:(亲测可用,安装环境:阿里云CentOS8.3 x64)

1、下载安装包 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2、禁用内置的PostgreSQL模块 sudo dnf -qy module disable postgresql
3、安装PostgreSQL:sudo dnf install -y postgresql13-server(yum install postgresql13)
4、初始化postgresql数据库 sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
5、设置开机自启动 sudo systemctl enable postgresql-13
6、启动postgresql数据库 sudo systemctl start postgresql-13
7、修改密码:su - postgres   |   psql -U postgres   |   \password 然后输入两次密码(postgres)则设置成功(测试OK)
或者:登录数据库并修改密码  psql -h 192.168.110.133 -d postgres -U postgres -p 5432      |     alter user postgres with password 'postgres'(未测试)
8、查看、启动、关闭、重启命令:systemctl status postgresql-13 | systemctl start postgresql-13   |   systemctl stop postgresql-13 | systemctl restart postgresql-13
注:在执行psql脚本的时候报错psql: FATAL: Peer authentication failed for user,原因是因为当前在root用户,需要切换到su - postgres用户
9、PostgreSQL允许远程访问的设置方法:1、修改data/pg_hba.conf中,IPV4下添加host  all    all    0.0.0.0/0    md5。2、修改postgresql.conf中,listen_addresses='*'
注:查看postgresql安装目录:systemctl status postgresql-13(CGroup第一行“-D”后面的目录)
10、重启服务,查看5432端口占用netstat -lntp(netstat -anp), 如果是127.0.0.1:5432说明远程访问未开启,如果是0.0.0.0:5432说明开启成功
11、云服务-配置云服务器安全组:开通5432端口(方法如下,否则远程telnet 39.105.147.226 5432不成功,远程pgadmin或navicat连接也不成功)
12、安装postgis:sudo yum install postgis31_13(版本号格式为:_前为postgis版本,后面为postgresql版本。yum list gdal*)
CentOS安装PostGIS最方便的方法是用PostgreSQL源加上EPEL源,直接yum安装,无痛解决依赖问题。由于PostGIS所依赖的包比较多,有些在CentOS官方源中没有,所以需要使用EPEL源。
PostGIS是PostgreSQL的一个插件,需要注意其版本匹配关系,详细的版本匹配关系可以在官网(https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS)上找到。
安装成功后可以在/usr/pgsql-13/share/extension中看到相关的扩展
13、创建PostGIS扩展:切换到操作系统的postgres用户sudo -i -u postgres,连接到数据库-bash-4.2$ psql -d mydb,新建扩展scgis=# CREATE EXTENSION postgis;(必须有分号)
验证PostGIS版本: # SELECT PostGIS_version();   # SELECT postgis_full_version();      验证PostgreSQL的版本:# select version();      查看扩展:select * from pg_extension;
select count(*) from spatial_ref_sys ;

问题:如果在安装postgis的过程中遇到报Requires: libdapclient.so.6()(64bit)的错误,原因是因为postgis需要依赖gdal,gdal又依赖libdapclient.so,但是yum在仓库中没有找到libdapclient.so
解决方法:1.安装epel源: dnf -y install epel-release;2.安装config-manager插件:sudo yum install dnf-plugins-core  3.启用PowerTools:sudo dnf config-manager --set-enabled powertools。(验证是否已成功启用PowerTools:$ dnf repolist;查看PowerTools资源库中可用的软件包列表:$ dnf repo-pkgs powertools list)
注:在CentOS/RHEL 8系统服务器上提供的PowerTools资源库提供了开发者相关的工具和库。一些常见的EPEL包依赖于PowerTools提供的包,因此,如果你在CentOS系统上设置了EPEL库,建议你启用PowerTools库。

你可能感兴趣的:(postgresql,centos,阿里云)