歐拉系統postgresql 與PostGis 離線環境安裝

来源:https://www.cnblogs.com/ajajroom/p/18434956
-Advertisement-
Play Games

postgresql 與PostGis 離線環境安裝 上傳文件至伺服器 #安裝所需依賴 yum install /opt/PGsql-13-gis/rpm/* -y Postgresql安裝 tar -zxvf postgresql-13.2.tar.gz #進入該目錄 ./configure -- ...


postgresql 與PostGis 離線環境安裝

上傳文件至伺服器

#安裝所需依賴
yum install /opt/PGsql-13-gis/rpm/* -y

Postgresql安裝

tar -zxvf postgresql-13.2.tar.gz
#進入該目錄
 ./configure --prefix=/usr/local/pgsql --with-uuid=ossp --with-libxml
make
make install
 #添加用戶
 useradd postgres
 mkdir /data/pgsql/data -p
 mkdir /data/pgsql/log -p
 touch /data/pgsql/log/server.log
 chown postgres:postgres /data/pgsql/ -R
 #關閉selinux
  setenforce 0 
  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  #使用systemd管理pgsql
  cp contrib/start-scripts/linux /etc/init.d/pgsql
  
  ---
  #添加init.d為可選項
  vi /etc/init.d/pgsql
  ###
  PGLOG="/usr/local/pgsql/log/server.log" #修改此項
  ###
  
  chmod a+x /etc/init.d/pgsql
  chkconfig --add /etc/init.d/pgsql
  echo '/usr/local/pgsql/lib' >> /etc/ld.so.conf
  ldconfig
  ---
  
  echo 'export PATH=/usr/local/pgsql/bin/:$PATH' >> /etc/profile #配置環境變數
  echo 'export PGDATA=/data/pgsql/data'  >> /etc/profile
  echo 'export PGHOME=/usr/local/pgsql/:$PATH' >> /etc/profile
  echo 'export LD_LIBRARY_PATH=/usr/local/pgsql/lib/:$LD_LIBRARY_PATH' >> /etc/profile
  source /etc/profile
  su - postgres
  ###
  initdb -D /data/pgsql/data/
  pg_ctl -D /data/pgsql/data/ -l /data/pgsql/log/server.log start
  pg_ctl -D /data/pgsql/data/ -l /data/pgsql/log/server.log stop
  exit
  ###
  systemctl start pgsql #啟動資料庫
#initdb報錯解決方案
echo "kernel.shmmni = 8192" >> /etc/sysctl.conf
sysctl -p

設置外部訪問

vi /usr/local/pgsql/data/pg_hba.conf
###
# IPv4 local connections:
host    all             all             0.0.0.0/0               trust
###

vi /usr/local/pgsql/data/postgresql.conf
###
listen_addresses = '*'          # what IP address(es) to listen on;
###

firewall-cmd --zone=public --add-port=5432/tcp --permanent     ##配置防火牆放行5432埠
firewall-cmd --reload       ##防火牆重新載入配置文件
systemctl restart pgsql

安裝PostGis

 echo 'export CMAKE_HOME=/usr/bin/cmake' >> /etc/profile

安裝proj

tar -zxvf proj-6.1.0.tar.gz
./configure --prefix=/usr/local/proj
make
make install
echo "/usr/local/proj/lib/" >> /etc/ld.so.conf
ldconfig

安裝geos

tar -xvf geos-3.8.0.tar.bz2
./configure --prefix=/usr/local/geos
make
make install
echo "/usr/local/geos/lib/" >> /etc/ld.so.conf
ldconfig

安裝gdal

tar -zxvf gdal-3.3.3.tar.gz
./configure --prefix=/usr/local/gdal --with-proj=/usr/local/proj
make
make install
echo "/usr/local/gdal/lib/" >> /etc/ld.so.conf
ldconfig

安裝json-c

unzip json-c-json-c-0.13.zip
./configure --prefix=/usr/local/json-c/
make
make install
echo "/usr/local/json-c/lib/" >> /etc/ld.so.conf
ldconfig

安裝protobuf

tar -zxvf protobuf-3.20.3.tar.gz
./autogen.sh
./configure --prefix=/usr/local/protobuf
make
make install 
echo '/usr/local/protobuf/lib/' >> /etc/ld.so.conf
ldconfig
echo 'export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/' >> /etc/profile
echo 'export PROTOBUF=/usr/local/protobuf' >> /etc/profile
source /etc/profile

安裝protobuf-c

tar -zxvf protobuf-c-1.4.0.tar.gz
./autogen.sh
./configure --prefix=/usr/local/protobuf-c/
make
make install
echo "/usr/local/protobuf-c/lib/" >> /etc/ld.so.conf
ldconfig
echo 'export PATH=$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$PATH:/usr/local/protobuf-c/bin' >> /etc/profile
echo 'export PATH=$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$PATH:/usr/local/protobuf-c/bin:/usr/local/gadl/bin' >> /etc/profile
source /etc/profile

安裝CGAL

tar -zxvf cgal-releases-CGAL-4.7.tar.gz
cmake3 . -DCMAKE_INSTALL_PREFIX=/usr/local/cgal
make
make install
echo "/usr/local/cgal/lib/" >> /etc/ld.so.conf
ldconfig

安裝SFCGAL

tar -zxvf SFCGAL-v1.3.10.tar.gz
cmake3 . -DCMAKE_INSTALL_PREFIX=/usr/local/sfcgal
make
make install
echo "/usr/local/sfcgal/lib64" >>  /etc/ld.so.conf
ldconfig

安裝postgis

 tar -zxvf postgis-3.1.6.tar.gz
 ./configure --prefix=/usr/local/postgis --with-pgsql=/usr/local/pgsql/bin/pg_config --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-geosconfig=/usr/local/geos/bin/geos-config  --with-projdir=/usr/local/proj --with-gdalconfig=/usr/local/gdal/bin/gdal-config --with-jsondir=/usr/local/json-c  --with-protobufdir=/usr/local/protobuf-c --with-sfcgal=/usr/local/sfcgal/bin/sfcgal-config
 make
 make install

安裝pointcloud

tar -zxvf pointcloud-1.2.2.tar.gz
 ./autogen.sh
./configure --prefix=/usr/local/pointcloud --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-xml2config=/usr/bin/xml2-config
make
make install

安裝插件

#進入postgresql-13.2下的contrib目錄
cd .../postgresql-13.2/contrib/
#安裝插件
cd adminpack/ && make && make install && cd ..
cd dblink/ && make && make install && cd ..
cd fuzzystrmatch/ && make && make install && cd ..
cd hstore/ && make && make install && cd ..
cd postgres_fdw/ && make && make install && cd ..
cd tablefunc/ && make && make install && cd ..
cd uuid-ossp/ && make && make install && cd ..
cd xml2/ && make && make install && cd .. 

進入資料庫激活插件

ldconfig
su - postgres
psql
##
create extension postgis;
create extension postgis_raster;
create extension postgis_sfcgal;
create extension fuzzystrmatch ;
create extension postgis_tiger_geocoder;
create extension postgis_topology;
create extension adminpack;
create extension dblink ;
create extension hstore ;
create extension postgres_fdw ;
create extension tablefunc ;
create extension "uuid-ossp";
create extension xml2 ;
create extension pointcloud;
create extension pointcloud_postgis ;

測試插件是否安裝成功

-- 建表
CREATE TABLE cities ( id int4, name varchar(50) );
-- 添加位置欄位
SELECT AddGeometryColumn ('cities', 'the_geom', 4326, 'POINT', 2);
-- 插入幾條數據
INSERT INTO cities (id, the_geom, name) VALUES (1,ST_GeomFromText('POINT(-5.911 3.115)',4326),'BeiJing,China');
INSERT INTO cities (id, the_geom, name) VALUES (2,ST_GeomFromText('POINT(-5.921 3.215)',4326),'BeiJing,China');
INSERT INTO cities (id, the_geom, name) VALUES (3,ST_GeomFromText('POINT(-5.931 3.315)',4326),'BeiJing,China');
INSERT INTO cities (id, the_geom, name) VALUES (4,ST_GeomFromText('POINT(-5.941 3.415)',4326),'BeiJing,China');
INSERT INTO cities (id, the_geom, name) VALUES (5,ST_GeomFromText('POINT(-5.951 3.515)',4326),'BeiJing,China');
INSERT INTO cities (id, the_geom, name) VALUES (6,ST_GeomFromText('POINT(-15.951 13.515)',4326),'Out,BeiJing,China');
-- 查詢全表
select id,name,ST_AsText(the_geom) from cities ;
-- 查詢任意兩點間球面距離,並以id排序
SELECT p1.name,p2.name,ST_DistanceSphere(p1.the_geom,p2.the_geom) FROM cities AS p1, cities AS p2 WHERE p1.id > p2.id;
-- 查詢矩形內的點
select id, name, ST_AsText(the_geom) from cities where the_geom && ST_SetSRID(ST_MakeBox2D(ST_POINT(-10.0,-10.0),ST_POINT(10.0,10.0)),4326);
-- 任意給出幾個點,查詢該空間範圍內的點,第一個點和最後一個點應是同一個點
select id,name,ST_AsText(cities.the_geom) from cities where the_geom && ST_AsText(ST_MakePolygon(ST_GeomFromText('LINESTRING ( -10.31 10.97 , -10.15 -10.09 , 10.35 10.27 , 10.31 -10.97 , -10.31 10.97)')));
-- 同上
select id,name,ST_AsText(cities.the_geom) from cities where the_geom && ST_MakePolygon(ST_GeomFromText('LINESTRING ( -10.31 10.97 , -10.15 -10.09 , 10.35 10.27 , 10.09 -10.88 , 30.31 -40.97 , -1.11 60.33 , -10.31 10.97)'));
-- string應該用單引號,雙引號會報錯
update cities set name = 'America,LAS' where id = 5;
-- 刪除數據
delete from cities where id = 6;
-- 查詢距離點(-87.71 43.741)距離為151600000米的所有點
SELECT name,st_astext(the_geom) FROM cities WHERE ST_DWithin(ST_Transform(ST_GeomFromText('POINT(-87.71 43.741)',4326),26986),ST_Transform(the_geom,26986), 151600000);

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

-Advertisement-
Play Games
更多相關文章
  • 本文是翻譯A graph a day, keeps the doctor away ! – MySQL History List Length[1]這篇文章,翻譯如有不當的地方,敬請諒解,請尊重原創和翻譯勞動成果,轉載的時候請註明出處。謝謝! 這是MySQL趨勢系列文章的第二篇。 正如我之前所寫,了 ...
  • 1. 不同類型的數據 1.1. 不同類型的數據在存儲方面有各自的特性,這些特性極大地影響了數據在數據湖倉中的存儲和使用方式 1.2. 結構化數據 1.2.1. 在企業等組織中,只有少量的數據是結構化數據 1.2.2. 結構化數據是基於事務的數據,是組織日常業務的副產品 1.3. 文本數據 1.3.1 ...
  • 目錄表的增刪改查Create指定列插入單行數據+全列插入多行數據+全列插入插入否則更新替換 (replace)Retrieve標準語法SELECT列全列查詢限制顯示條目 limit (分頁查詢)基本語法:指定列查詢select 查詢欄位為表達式表達式重命名去重WHERE 條件比較運算符邏輯運算符案例 ...
  • 本文內容來自YashanDB官網,具體內容請見https://www.yashandb.com/newsinfo/7488285.html?templateId=1718516 背景 OCI 是Oracle調用介面(Oracle Call Interface 簡稱OCI) 提供了一組對Oracle數 ...
  • 本文內容來自YashanDB官網,具體內容請見https://www.yashandb.com/newsinfo/7459465.html?templateId=1718516 問題現象 某局點yashandb cpu使用率100%,經線上分析是由於幾個sql執行慢,其中一個sql為簡單的單行等值綁 ...
  • Apache SeaTunnel 2.3.8版本即將於大家見面,近日,Apache SeaTunnel PMC Member 範佳在社區的交流會上為大家提前透露了關於這個新版本即將進行的功能與特性更新概況,詳細內容如下: SeaTunnel 簡介 SeaTunnel是一個高性能的開源分散式數據集成系 ...
  • 在大數據時代,工作流任務調度系統成為了數據處理和業務流程管理的核心組件,在大數據平臺的構建和開發過程中尤為重要。隨著數據量的激增和業務需求的多樣化,合理的任務調度不僅能夠提高資源利用率,還能保證業務流程的穩定和高效運行。本文將結合實際場景,探討目前市面上常見的工作流任務調度及其關鍵特性。 一、工作流 ...
  • 本文轉自YashanDB官網,具體內容請見https://www.yashandb.com/newsinfo/7441388.html?templateId=1718516 問題現象 客戶剛開始使用YashanDB odbc的時候,需要查看調用日誌詳情, 確認相應介面調用情況。 問題的風險及影響 客 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...