GIS on CentOS 7 之 PostgreSQL & PostGIS

来源:https://www.cnblogs.com/yes-V-can/archive/2018/05/31/9116326.html
-Advertisement-
Play Games

CentOS 7 中 安裝 postgresql 和 postgis ...


PostgreSQL & PostGIS

安裝postgresql

配置好yum源之後,使用yum info postgresql可發現 postgresql的版本為9.2.23,若想安裝最新版本,可參考下麵操作

https://www.postgresql.org/download/linux/redhat/

http://docs.nextgis.com/docs_ngweb/source/install-centos7.html

http://www.postgresonline.com/journal/archives/362-An-almost-idiots-guide-to-install-PostgreSQL-9.5,-PostGIS-2.2-and-pgRouting-2.1.0-with-Yum.html

sudo yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-3.noarch.rpm

# 查看上述倉庫中可用的包
yum list | grep postgresql95
# 安裝 PostgreSQL  client server 
sudo yum install postgresql95 postgresql95-server postgresql95-libs \
postgresql95-contrib postgresql95-devel
# 查看幫助
psql --help
rpm -qa | grep postgresql*  # 查看已安裝軟體
# 初始化資料庫,並設置隨系統啟動
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb
sudo systemctl start postgresql-9.5.service # service postgresql-9.5 start
sudo systemctl enable postgresql-9.5.service

# 編輯驗證參數(此處使用nano編輯器,可以使用 vim)
# psql 進入postgres資料庫之後,使用 show hba_file; 查看文件位置
sudo nano /var/lib/pgsql/9.5/data/pg_hba.conf 
sudo vim /var/lib/pgsql/9.5/data/pg_hba.conf 

將ident 修改為 md5

PostgreSQL ident和peer基於操作系統用戶的認證 PostgreSQL認證方法

如果是 peer,可能會出現 對等認證失敗 的錯誤

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# 可進一步修改 postgresql.conf 以監聽目標地址
su postgres   # 切換到postgres    或   sudo su postgres
psql -U postgres   #登錄資料庫,預設沒有密碼
ALTER USER postgres WITH PASSWORD '密碼'; #修改密碼  sudo passwd postgres
# 或者使用 \password 命令
\password postgres 
select * from pg_shadow; # 查看資料庫信息
\q #退出
psql -V
sudo systemctl restart postgresql-9.5.service # 重啟服務,或  service postgresql-9.5 restart

# 使用postgres用戶新建一個psql資料庫用戶(ngw_admin)
# \du 命令可以查看用戶信息
# -P 表示密碼,-e表示顯示命令。 使用 -s 或 --superuser 賦予超級用戶許可權
sudo -u postgres createuser ngw_admin -P -e
# 新建資料庫(db_ngw),所有者為 ngw_admin
sudo -u postgres createdb -O ngw_admin --encoding=UTF8 db_ngw
postgresql-client libraries and client binaries
postgresql-server core database server
postgresql-contrib additional supplied modules
postgresql-devel libraries and headers for C language development
pgadmin4 pgAdmin 4 graphical administration utility

### 安裝postgis

https://postgis.net/install/

The postgis2_95-client contains the PostGIS commandline tools shp2gpsql, pgsql2shp, raster2pgsql that are useful for loading or exporting spatial data.

sudo yum install epel-release # 沒有配置epel源的話
sudo yum install postgis2_95 postgis2_95-client # 安裝
# 需要 pgRouting 時 yum install pgrouting_95
# 登錄進入相應資料庫
psql -U ngw_admin -d db_ngw
# 為已有資料庫(db_ngw)擴展 postgis 功能
CREATE EXTENSION postgis;
SELECT PostGIS_Full_Version(); # 測試資料庫是否包含了postgis的功能

或者直接在shell中執行

sudo psql -u postgres -d db_ngw -c 'CREATE EXTENSION postgis;'
sudo psql -u postgres -d db_ngw -c \
'ALTER TABLE geometry_columns OWNER TO ngw_admin;'
sudo psql -u postgres -d db_ngw -c \
'ALTER TABLE spatial_ref_sys OWNER TO ngw_admin;'
sudo psql -u postgres -d db_ngw -c \
'ALTER TABLE geography_columns OWNER TO ngw_admin;'
psql -h localhost -d db_ngw -U ngw_admin -c "SELECT PostGIS_Full_Version();"

使用template方式直接創建postgis資料庫,並指定所有者

# 登錄資料庫
# postgis_21_sample 為 2.1 版本postgis資料庫
create  database  geodataont   template   postgis_21_sample   owner   gdo;
# 或者
createdb -O gdo -U postgres -T postgis_22_sample geodataont

啟用 PostGIS 功能的相關SQL

DO NOT INSTALL it in the database called postgres.

# 連接資料庫之後,執行以下sql命令啟用相應功能
# Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
# Enable Topology
CREATE EXTENSION postgis_topology;
# Enable PostGIS Advanced 3D
# and other geoprocessing algorithms
# sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
# fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
# rule based standardizer
CREATE EXTENSION address_standardizer;
# example rule data set
CREATE EXTENSION address_standardizer_data_us;
# Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;

CREATE EXTENSION pgrouting;
SELECT * FROM pgr_version();
# yum install ogr_fdw95
CREATE EXTENSION ogr_fdw;

CentOS 7 源碼安裝PostGIS


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 無論何時,正確選擇使用as運算符進行類型轉換。比盲目的強制類型轉換更安全,而且在運行時效率更高。 用as和is進行轉換時,並不是對所有用戶定義的類型都能完成,只是在運行時類型和目標類型匹配時,轉換才能完成。 1、強制轉換是不安全的,可能有異常拋出。需要try catch 結構來保證程式運行 2、as ...
  • 1、註冊控制項:regsvr32 C:\Windows\System32\mstscax.dll。 2、添加RDP Control控制項到工具箱中。我選擇的RDP Client Control (redistributable) - version 9 3、在VS項目中引用C:\Windows\Syst ...
  • 今天辦公室里來了一個程式員妹子飛鳥,小魚是給她分配的導師,初次見面~ 午飯時間 Linux目錄結構 resolv.conf文件 nameserver 唯一的必選關鍵字。表明DNS 伺服器的IP 地址,可以有很多行的nameserver ,每一個帶一個I P 地址。在查詢時就按nameserver 在 ...
  • 輸出特效格式控制: \033[0m 關閉所有屬性 \033[1m 設置高亮度 \03[4m 下劃線 \033[5m 閃爍 \033[7m 反顯 \033[8m 消隱 \033[30m -- \033[37m 設置前景色 \033[40m -- \033[47m 設置背景色 游標位置等的格式控制: \... ...
  • Consul 是一個支持多數據中心分散式高可用的服務發現和配置共用的服務軟體, 由 HashiCorp 公司用 Go 語言開發, 基於 Mozilla Public License 2.0 的協議進行開源。 下載 官網下載:https://www.consul.io/downloads.html 在 ...
  • 1.重定位 在完成空間與地址的分配步驟之後,鏈接器就進入了符號解析與重定位的步驟,這也就是靜態鏈接的核心作用; 在分析符號解析和重定位之前,首先讓我們來看看“a.o”裡面是怎麼使用這兩個外部符號,也就是說我們在“a.c”源程式裡面使用了“shared”變數和“swap”函數,那麼編譯器在將“a.c” ...
  • 寫在前面 Mac系統中有幾個比較特殊的功能鍵,和Win系統的區別也主要在這裡比如在Win系統中我們常用的Ctrl鍵,在Mac系統中對應的不是長得比較像的Cnotrol,而是Command鍵,貌似也是Mac系統中最常用的一個鍵。 在Mac系統中,每個按鍵都有與之對應的特殊符號,在系統中叫技術符號比如⌘ ...
  • 今天使用CentOS 7,發現未安裝vim,所以重新安裝 執行命令: yum -y install vim* 然後就可以使用了 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...