亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

詳解Linux中PostgreSQL和PostGIS的安裝和使用

2024-09-05 23:04:36
字體:
來源:轉載
供稿:網友

安裝 PostgreSQL 和 PostGIS

PostgreSQL 和 PostGIS 已經是熱門的開源工程,已經收錄在各大 Linux 發行版的 yum 或 apt 包中。Ubuntu 為例,安裝以下包即可:

$ sudo apt-get install postgresql-client postgresql postgis -y

RedHat 系列則請安裝:

$ sudo yum install postgresql-server postgresql postgis

初次安裝后,默認生成一個名為 postgres 的數據庫和一個名為 postgres 的數據庫用戶。這里需要注意的是,同時還生成了一個名為 postgres 的 Linux 系統用戶。我們以后在操作 PostgreSQL 的時候都應該在這個新創建的 postgres 用戶中進行。

PostgreSQL 配置

如果是從源碼安裝

不建議從源碼安裝,我曾經試過從源碼安裝,實在是太麻煩了,而且各種 make install 容易出錯。最后我還是用 rpm 安裝了。不過既然花了些時間研究并且我成功安裝過,所以還是記錄一下吧——不過,可能有錯漏,所以讀者如果要從源碼安裝的話,請做好回滾的準備。

如果使用的是通過 source 編譯并且 make install 安裝,那么這一節是需要額外配置的。

貌似 CentOS 系列的安裝也需要……

默認的 make install 之后,PostgreSQL 安裝目錄在:/usr/local/pgsql/

首先根據這個鏈接的參考,需要配置環境變量

$ set $PGDATA = "/usr/local/pgsql/database"

但是執行了 pg_ctl start 之后,會出現錯誤:

pg_ctl: directory "/usr/local/pgsql/database" is not a database cluster directory

這樣的話,就需要參照 PostGreSQL 官方文檔的步驟創建真正的 database:<br/>

PostgreSQL: Documentation: 9.1: Creating a Database Cluster

首先創建一個用戶賬戶,名叫 postgres

$ usradd postgres$ sudo chown postgres /usr/local/pgsql/database

然后進入這個賬戶,創建 database

$ sudo su postgres$ initdb -D /usr/local/pgsql/database/

此時 shell 會輸出:

The files belonging to this database system will be owned by user "postgres".This user must also own the server process.The database cluster will be initialized with locale "C".The default database encoding has accordingly been set to "SQL_ASCII".The default text search configuration will be set to "english".Data page checksums are disabled.fixing permissions on existing directory /usr/local/pgsql/database ... okcreating subdirectories ... okselecting default max_connections ... 100selecting default shared_buffers ... 128MBselecting dynamic shared memory implementation ... posixcreating configuration files ... okcreating template1 database in /usr/local/pgsql/database/base/1 ... okinitializing pg_authid ... okinitializing dependencies ... okcreating system views ... okloading system objects' descriptions ... okcreating collations ... okcreating conversions ... okcreating dictionaries ... oksetting privileges on built-in objects ... okcreating information schema ... okloading PL/pgSQL server-side language ... okvacuuming database template1 ... okcopying template1 to template0 ... okcopying template1 to postgres ... oksyncing data to disk ... okWARNING: enabling "trust" authentication for local connectionsYou can change this by editing pg_hba.conf or using the option -A, or--auth-local and --auth-host, the next time you run initdb.Success. You can now start the database server using:pg_ctl -D /usr/local/pgsql/database/ -l logfile start

恭喜你,接下來就可以啟動 PostgreSQL 了:

pg_ctl -D /usr/local/pgsql/database/ -l /usr/local/pgsql/database/psql.log start

PostgreSQL 安裝好后

進入 postgres 賬戶,并且進入 PostgreSQL 控制臺:

$ sudo su postgres$ psql

這時相當于系統用戶 postgres 以同名數據庫用戶的身份,登錄數據庫,否則我們每次執行 psql 的時候都要在參數中指定用戶,容易忘。

在 psql 中設置一下密碼——需要注意的是,這里設置的密碼并不是 postgres 系統帳戶的密碼,而是在數據庫中的用戶密碼:

postgres=# /password postgres

然后按照提示輸入密碼就好。

從源碼安裝 PostGIS

如果選擇了從源碼安裝 PostgreSQL 的話,那么首先需要判斷你安裝的 PostgreSQL 是什么版本

然后,再到 PostGIS 的網頁上去查其對應的是 PostGIS 的哪個版本。

最后,按照 PostGIS 的版本去下載對應的 source

最后的導入很麻煩,筆者就是卡在這一步,所以才最終放棄從源碼安裝的……

導入 PostGIS 擴展

根據 postgresql 和 postgis 的版本不同,路徑會有些差異,主要是路徑中包含版本信息:

$ sudo su postgres$ createdb template_postgis$ createlang plpgsql template_postgis$ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/postgis.sql$ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/spatial_ref_sys.sql

上面的操作中,創建了一個叫做 “template_postgis” 的空數據庫。這個數據庫是空的,并且屬于 postgres 用戶。注意,不要往這個數據庫中添加數據,這個數據庫之所以稱為 “模板”(template),就說明它是用來派生用的。

相應的 PostGIS 路徑可能不同,如果失敗,就在上面的路徑附近多嘗試一下,找幾個 .sql 文件試試看。

轉換 .shp 文件到 PostGIS 數據庫中

轉換 .shp 到 .sql 文件

首先找到需要轉換的文件,假設需要轉換的 .shp 文件是:/tmp/demo.shp,那么就做以下操作:

$ sudo su postgres$ cd /tmp$ shp2pgsql -W GBK -s 3857 ./demo.shp entry > demo.sql

這里需要說明一下最后一句各部分所代表的含義:

  • -W GBK:如果你的 .shp 文件包含中文字符,那么請加上這個選項
  • -s 3857:指明文件的參考坐標系統。我的 .shp 文件使用的是 EPSG:3857
  • ./demo.shp:.shp 文件的路徑
  • entry:表示要導入的數據庫表名——假設這個 .shp 文件表示的是各個入口,所以我命名為 “entry”
  • demo.sql

得到了 .sql 文件后,就可以直接導入到 PostgreSQL 數據庫了。

創建一個 PostGIS 數據庫

這里就需要用到前面的 template 了。

sudo su postgrespsqlCREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser;
  • newdb: 新的數據庫名
  • originaldb:也就是前面的 template_postgis
  • dbuser:你的賬戶名,我一般使用 postgres

導入 .sql 文件

sudo su postgrespsql/c newdb/i demo.sql/d

可以看到,.sql 文件已經被導入了。

設置數據庫權限

OK,現在我們在本機(服務器 IP 假設是 192.168.1.111)用以下命令登錄 psql,會發現一段輸出:

$ psql -h 192.168.1.111 -p 5432psql: could not connect to server: Connection refused    Is the server running on host "100.94.110.105" and accepting    TCP/IP connections on port 5432?

這是因為 PostgreSQL 默認不對外開放權限,只對監聽環回地址。要修改的話,需要找到 postgresql.conf 文件,修改值 listen_addresses:

listen_addresses = '*'

以上就是本次小編整理的關于Linux中PostgreSQL和PostGIS的安裝和使用的全部內容,感謝你對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
激情av一区二区| 国产免费一区二区三区在线能观看| 综合激情国产一区| 国产精品aaaa| 亚洲男女自偷自拍图片另类| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲精品mp4| 亚洲xxxx做受欧美| 久久精品亚洲国产| 三级精品视频久久久久| 成人免费激情视频| 久久久久久成人| 57pao国产成人免费| 精品国产91久久久| 欧美另类极品videosbestfree| 中文字幕亚洲天堂| 亚洲午夜女主播在线直播| 久久五月天色综合| 日韩精品视频在线观看网址| 日韩在线播放av| 国产精品午夜一区二区欲梦| 亚洲国产小视频| 免费不卡在线观看av| 欧美福利在线观看| 日韩成人在线电影网| 欧美精品在线观看| 综合欧美国产视频二区| 亚洲成人免费网站| 国产精品久久久久久久久久三级| 精品成人国产在线观看男人呻吟| 国产精品91免费在线| 一区二区福利视频| 欧美日韩一二三四五区| 亚洲欧洲一区二区三区久久| xxx欧美精品| 国产精品免费福利| 日本精品免费观看| 中文字幕少妇一区二区三区| 亚洲国产精品久久久| 欧美www在线| 亚洲va欧美va国产综合久久| 国产成人亚洲综合91| 91高潮在线观看| 欧美丰满少妇xxxx| 视频在线观看99| 亚洲三级 欧美三级| 91九色国产视频| 精品一区精品二区| 亚洲国内精品视频| 亚洲综合日韩在线| 国产精品av在线播放| 在线午夜精品自拍| 日韩成人激情视频| 久久久久久亚洲精品| 国产亚洲精品久久久久久777| 亚洲最新av网址| 中文国产成人精品| 国产精品成人aaaaa网站| 91精品国产综合久久香蕉922| 精品久久久久久久久久久久久| 欧美激情中文字幕乱码免费| 影音先锋日韩有码| 欧美极品美女视频网站在线观看免费| 欧美另类极品videosbest最新版本| 国产女精品视频网站免费| 欧美理论电影在线观看| 日本亚洲欧洲色α| 免费av一区二区| 精品美女永久免费视频| 欧美成人网在线| 国产成人亚洲综合91| 国产成人在线视频| 全色精品综合影院| 91久久国产精品| 91免费看片在线| 国产精品视频免费观看www| 欧美www在线| 91国自产精品中文字幕亚洲| 热久久99这里有精品| 亚洲人高潮女人毛茸茸| 136fldh精品导航福利| 亚洲一区二区少妇| 91精品久久久久久久久中文字幕| 91在线|亚洲| 亚洲一区二区三区四区视频| 亚洲一区二区三区乱码aⅴ| 亚洲国产97在线精品一区| 欧美理论电影网| 日韩成人高清在线| 欧美精品videosex性欧美| 黑人狂躁日本妞一区二区三区| 日本伊人精品一区二区三区介绍| 日韩国产精品亚洲а∨天堂免| 亚洲综合中文字幕68页| 久久久国产精品视频| 亚洲男人天堂手机在线| 粉嫩av一区二区三区免费野| 91精品国产色综合久久不卡98| 亚洲欧美在线一区二区| 98精品国产自产在线观看| 欧美亚洲国产另类| 91久久精品一区| 欧美丰满少妇xxxxx| 久操成人在线视频| 国产亚洲在线播放| 福利二区91精品bt7086| 欧美体内谢she精2性欧美| 国产成人免费av电影| 欧美有码在线观看| 亚洲欧洲第一视频| 国产一区二区在线免费视频| 久久久久久91香蕉国产| 久久免费精品日本久久中文字幕| 久久精视频免费在线久久完整在线看| 久久精品一本久久99精品| 久久亚洲综合国产精品99麻豆精品福利| 亚洲最大福利视频网站| 欧美激情视频网址| 55夜色66夜色国产精品视频| 国产精品96久久久久久又黄又硬| 国产成人久久久| 精品成人久久av| 黑人与娇小精品av专区| 日韩精品中文字幕久久臀| 最新中文字幕亚洲| 亚洲精品影视在线观看| 欧美成人精品一区| 色99之美女主播在线视频| 久久精品国产亚洲精品2020| 亚洲精品按摩视频| 久久精品国产v日韩v亚洲| 亚洲大胆人体av| 亚洲第一区在线观看| 91最新国产视频| 日韩成人av网址| 日韩电影中文字幕| 国产精品久久久久久久久久东京| 亚洲а∨天堂久久精品9966| 亚洲精品wwww| 7777精品视频| 日韩一级裸体免费视频| 久久亚洲精品网站| 国产91成人video| 欧美日韩中文字幕在线| 日韩电影视频免费| 97精品久久久中文字幕免费| 最近2019年中文视频免费在线观看| 亚洲一区999| 亚洲国产精品人人爽夜夜爽| 欧美自拍视频在线观看| 亚洲国产精品美女| 色综合色综合久久综合频道88| 5252色成人免费视频| 国产精品久久久久久久久男| 日韩在线播放一区| 久久久久九九九九| 欧美成年人视频网站| 亚洲aa中文字幕| www.日本久久久久com.| 中文字幕在线看视频国产欧美| 国产99久久精品一区二区永久免费| 欧美一级淫片videoshd| 亚洲国产日韩精品在线| 欧美多人乱p欧美4p久久|