Postgresql
在 Ubuntu 14.04 上使用 Postgis 擴展的困難
我有一個更新的 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 方案之後應該沒有問題