Fedora40 中安装postgresql15+postGis和pgAdmin4

343 阅读3分钟

打开postgresql15官方网站

8.png 点击 Linux -> Red Hat/Rocky/AlmaLinux

9.png

我准备安装postgresql15版本,在这里这样选择

11.png

依次运行如下代码:

# 创建 `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的版本

12.png

下边是安装代码:

# 安装远程仓库
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

安装完成后,如果直接登陆会出现错误,下边开始登录

新建服务
13.png

填写数据库名称

14.png

填写数据库地址和登录用户、密码

16.png

这里密码填写为“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 4326WGS 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安装教程及空间数据可视化