打开postgresql15官方网站
点击 Linux -> Red Hat/Rocky/AlmaLinux
我准备安装postgresql15版本,在这里这样选择
依次运行如下代码:
# 创建 `postgres` 用户和组:
sudo groupadd postgres
sudo useradd -g postgres postgres
# 设置 `postgres` 用户的家目录权限
sudo usermod -d /var/lib/pgsql postgres
sudo chown -R postgres:postgres /var/lib/pgsql /var/run/postgresql /usr/pgsql-15
如果不创建'postgres用户',安装操作会使用root用户进行
# 安装远程仓库:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm
# 安装 PostgreSQL:
sudo dnf install -y postgresql15-server
# 初始化数据库和设置开机启动:
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
注意:不同版本,启动代码不同
数据库已经安装完成,为了使用界面操作数据库,需要安装pgAdmin4
打开pgAdmin4官方网站,看到有支持Fedora40的版本
下边是安装代码:
# 安装远程仓库
sudo rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-fedora-repo-2-1.noarch.rpm
下边只需要安装一种就好,我只安装桌面模式
# 安装网页和桌面模式.
sudo yum install pgadmin4
# 只安装桌面模式.
sudo yum install pgadmin4-desktop
# 只安装网页模式
sudo yum install pgadmin4-web
安装完成后,如果直接登陆会出现错误,下边开始登录
新建服务
填写数据库名称
填写数据库地址和登录用户、密码
这里密码填写为“postgres” 时,会提示:
Unable to connect to server: connection failed: connection to server at "127.0.0.1",port 5432 failed: 致命错误: 用户 "postgres" Password 认证失败
错误原因是密码不正确,现在重新修改postgresql用户的密码
打开终端运行:
# 换到 `postgres` 用户
sudo -i -u postgres
# 进入 PostgreSQL
psql
# 在 `psql` 提示符下输入新密码
ALTER USER postgres WITH PASSWORD '123456';
此时新密码为:123456,然后输入 `\q` 退出 `psql`
现在重新使用pgAdmin4登录Postgresql,不再提示错误。
安装postGis前,查看PostGis 与Posgresql 版本对应
# 确定安装如下版本postGis
sudo dnf install postgis34_15.x86_64 postgis34_15-utils.x86_64
数据库启用 PostGIS 扩展
#使用 `psql` 工具连接到你的 PostgreSQL 数据
sudo -i -u postgres
psql
# 创建数据库(如果还没有),数据库名称testdb
CREATE DATABASE testdb;
\c testdb
# 在数据库中启用 PostGIS 扩展
#启用基本的 PostGIS 功能
CREATE EXTENSION postgis;
#启用 PostGIS 拓扑功能(如果需要)
CREATE EXTENSION postgis_topology;
# 验证 PostGIS 安装
SELECT PostGIS_Version();
#使用PostGIS提供的地理空间功能和数据类型。创建一个包含地理位置数据的表:
CREATE TABLE locations (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
geom GEOMETRY(Point, 4326)
);
#例子中,`geom` 列存储了使用 SRID 4326(WGS 84坐标系)表示的地理位置点。
#插入和查询地理数据
#这段 SQL 插入一个地理位置点并查询距离该点 1000 米以内的所有位置。
-- 插入数据
INSERT INTO locations (name, geom)
VALUES ('Example Location', ST_SetSRID(ST_MakePoint(-71.060316, 48.432044), 4326));
-- 查询数据
SELECT name, ST_AsText(geom) FROM locations WHERE ST_DWithin(geom, ST_SetSRID(ST_MakePoint(-71.060316, 48.432044), 4326), 1000);
windows中安装postGis参考: PostgreSQL15+对应PostGIS安装教程及空间数据可视化