Postgresql

在 Ubuntu 14.04 上使用 Postgis 擴展的困難

  • May 8, 2014

我有一個更新的 Ubuntu 14.04 執行 postgresql 9.3(使用來自https://wiki.postgresql.org/wiki/Apt的教程安裝)。

當我通過 pgadmin 訪問我的數據庫並轉到控制台並鍵入:

-"create extension postgis;"

我收到一個錯誤,指出目錄中缺少副檔名:

/usr/share/postgresql/9.1/extension/postgis.control

但那是9.1。- pgadmin 是否連接到錯誤的 postgresql?在我的 postgresql 目錄中,我還有一個文件夾“9.1”、“9.2”和“9.3”。而 postgis 擴展文件似乎只在 9.3 子文件夾中。

我需要更改 pgadmin 設置中的某些內容嗎?我自己有點沒有選擇。

套餐:

  • postgis 2.1.2+dfsg-2
  • postgresql-9.3-postgis2.1
  • PostgreSQL 9.3+154.pgdg14.04+1
  • pgadmin3 1.18.1-2
  • postgresql-contrib-9.3

編輯

dpkg -L postgresql-9.3-postgis2.1

返回:

dpkg-query: Package »postgresql-9.3-postgis2.1« is not installed.

但這有效

sudo dpkg -L postgresql-9.3-postgis-2.1 2.1.2+dfsg-2

   /.
   /usr
   /usr/lib
   /usr/lib/postgresql
   /usr/lib/postgresql/9.3
   /usr/lib/postgresql/9.3/lib
   /usr/lib/postgresql/9.3/lib/postgis-2.1.so
   /usr/lib/postgresql/9.3/lib/rtpostgis-2.1.so
   /usr/share
   /usr/share/doc
   /usr/share/doc/postgresql-9.3-postgis-2.1
   /usr/share/doc/postgresql-9.3-postgis-2.1/copyright
   /usr/share/doc/postgresql-9.3-postgis-2.1/changelog.Debian.gz

編輯 2

伺服器狀態還抱怨“伺服器缺少檢測功能”和缺少 conbrib-package。這裡也忽略了安裝的包“postgresql-contrib-9.3”。

在此處輸入圖像描述

編輯3:

“pg_lsclusters”的輸出

   Ver Cluster Port Status Owner    Data directory               Log file
   9.1 main    5432 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
   9.3 main    5433 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log

但那是9.1。- pgadmin 是否連接到錯誤的 postgresql?

是的。

您似乎已連接到 9.1 伺服器,這表明 9.1 仍在執行。

看看你pg_lsclusters有什麼 PostgreSQL 安裝和它們的狀態。

每個都在不同的埠上執行。如果您想連接到 9.3,您需要檢查它在哪個埠上執行並將 PgAdmin 連接到該埠。

如果您不需要同時安裝所有版本的 postgresql,我建議您將它們全部解除安裝,然後執行 PostgreSQL 9.3、postGIS 2.1 和 pgAdmin 1.18 以及所有相關軟體包的全新安裝。

在您將 PostGIS 作為擴展關聯到任何 PostgreSQL 方案之後應該沒有問題

引用自:https://dba.stackexchange.com/questions/64666