2 安装PostgreSQL
要在 Ubuntu 上安装 PostgreSQL 和 PostGIS,可以按照以下步骤操作:
在 Ubuntu 上安装特定版本的 PostgreSQL 数据库,你可以使用
apt
包管理器来实现。以下是安装特定版本 PostgreSQL 的步骤:
添加 PostgreSQL 官方仓库
:
如果还没有添加 PostgreSQL 官方仓库,可以使用以下命令添加:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
安装指定版本的 PostgreSQL:
一旦添加了官方仓库,可以安装特定版本的 PostgreSQL。例如,安装 PostgreSQL 14,可以执行以下命令:
sudo apt install postgresql-14
如果需要安装其他版本的 PostgreSQL,只需将软件包名称中的版本号更改为你需要的版本即可。
启动 PostgreSQL 服务:
安装完成后,PostgreSQL 服务应该会自动启动。你可以使用以下命令检查 PostgreSQL 服务的状态:
sudo systemctl status postgresql@14-main
如果服务未启动,你可以使用以下命令手动启动它:
sudo systemctl start postgresql@14-main
3 安装 PostGIS 扩展
接下来,安装 PostGIS 扩展。PostGIS 是 PostgreSQL 中用于地理空间数据处理的扩展。
sudo apt install postgis postgresql-14-postgis-3
这将安装 PostgreSQL 14 版本的 PostGIS 扩展。如果希望安装其他版本的 PostGIS,可以相应地更改软件包名称中的版本号。
4 创建 PostgreSQL 数据库
安装完 PostGIS 扩展后,需要创建一个数据库,并启用 PostGIS 扩展。首先,以 postgres
超级用户身份登录到 PostgreSQL:
sudo -u postgres psql
然后在 PostgreSQL 命令行中创建一个数据库:
CREATE DATABASE postgis_test;
若需修改postgres用户密码,在进入数据库后,执行以下命令,二次确认密码后即可
\password postgres
启用 PostGIS 扩展:
进入刚才创建的数据库:
\c postgis_test;
然后,启用 PostGIS 扩展:
CREATE EXTENSION postgis;
如果你还需要启用其他的地理空间扩展(如 topology、tiger_geocoder 等),可以进一步启用它们:
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;
最后,退出 PostgreSQL 命令行:
现在,你已经在 Ubuntu 上成功安装了 PostgreSQL 和 PostGIS,并创建了一个具有 PostGIS 扩展的数据库。
5 查看postgresql数据库和postgis版本
要查看 PostgreSQL 数据库的版本,可以使用以下命令:
```bash
psql --version
这将显示安装在系统上的 PostgreSQL 版本。
要检查是否安装了 PostGIS 扩展,并查看其版本,需要可以连接到 PostgreSQL 数据库并执行以下 SQL 查询:
```sql
SELECT PostGIS_full_version();
这将返回安装的 PostGIS 版本信息。如果返回的结果中包含了版本号,就说明 PostGIS 已经安装并可用。
6 配置postgresql数据库ip连接
刚安装的数据库,默认只有本机ip可以连接,如需要远程连接还需要配置ip地址
要设置 PostgreSQL 允许特定 IP 地址访问,需要编辑 PostgreSQL 的配置文件 `postgresql.conf` 和访问控制文件 `pg_hba.conf`。
编辑 postgresql.conf
文件:
打开 postgresql.conf
文件:
sudo vim /etc/postgresql/14/main/postgresql.conf
找到 listen_addresses
参数并将其设置为需要允许访问的 IP 地址。如果要允许所有 IP 地址访问,可以将其设置为 '*'
。例如:
listen_addresses = 'localhost,192.168.1.100'
保存并关闭文件后,重新启动 PostgreSQL 服务使更改生效:
sudo systemctl restart postgresql@14-main
编辑 pg_hba.conf
文件:
打开 pg_hba.conf
文件:
sudo vim /etc/postgresql/14/main/pg_hba.conf
在文件中添加允许访问的规则。例如,如果要允许来自 IP 地址 192.168.1.100
的所有用户访问所有数据库,可以添加如下规则:
host all all 192.168.1.100/32 md5
这表示使用密码验证 (md5
) 的方式允许来自 IP 地址 192.168.1.100
的所有用户访问所有数据库。
保存并关闭文件后,重新启动 PostgreSQL 服务使更改生效:
sudo systemctl restart postgresql@14-main
根据需求修改 IP 地址和访问规则。安全起见,需确保仅允许受信任的 IP 地址访问 PostgreSQL 数据库。