欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年02月06日 14:32:25   投稿:laozhang  
這篇文章主要介紹了詳解Linux中PostgreSQL和PostGIS的安裝和使用,并把需要注意點(diǎn)做了分析和解釋,需要的朋友學(xué)習(xí)下。

安裝 PostgreSQL 和 PostGIS

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

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

RedHat 系列則請(qǐng)安裝:

$ sudo yum install postgresql-server postgresql postgis

初次安裝后,默認(rèn)生成一個(gè)名為 postgres 的數(shù)據(jù)庫和一個(gè)名為 postgres 的數(shù)據(jù)庫用戶。這里需要注意的是,同時(shí)還生成了一個(gè)名為 postgres 的 Linux 系統(tǒng)用戶。我們以后在操作 PostgreSQL 的時(shí)候都應(yīng)該在這個(gè)新創(chuàng)建的 postgres 用戶中進(jìn)行。

PostgreSQL 配置

如果是從源碼安裝

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

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

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

默認(rèn)的 make install 之后,PostgreSQL 安裝目錄在:/usr/local/pgsql/

首先根據(jù)這個(gè)鏈接的參考,需要配置環(huán)境變量

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

但是執(zhí)行了 pg_ctl start 之后,會(huì)出現(xiàn)錯(cuò)誤:

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

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

PostgreSQL: Documentation: 9.1: Creating a Database Cluster

首先創(chuàng)建一個(gè)用戶賬戶,名叫 postgres

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

然后進(jìn)入這個(gè)賬戶,創(chuàng)建 database

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

此時(shí) shell 會(huì)輸出:

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 ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/database/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You 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

恭喜你,接下來就可以啟動(dòng) PostgreSQL 了:

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

PostgreSQL 安裝好后

進(jìn)入 postgres 賬戶,并且進(jìn)入 PostgreSQL 控制臺(tái):

$ sudo su postgres
$ psql

這時(shí)相當(dāng)于系統(tǒng)用戶 postgres 以同名數(shù)據(jù)庫用戶的身份,登錄數(shù)據(jù)庫,否則我們每次執(zhí)行 psql 的時(shí)候都要在參數(shù)中指定用戶,容易忘。

在 psql 中設(shè)置一下密碼——需要注意的是,這里設(shè)置的密碼并不是 postgres 系統(tǒng)帳戶的密碼,而是在數(shù)據(jù)庫中的用戶密碼:

postgres=# \password postgres

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

從源碼安裝 PostGIS

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

然后,再到 PostGIS 的網(wǎng)頁上去查其對(duì)應(yīng)的是 PostGIS 的哪個(gè)版本。

最后,按照 PostGIS 的版本去下載對(duì)應(yīng)的 source

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

導(dǎo)入 PostGIS 擴(kuò)展

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

$ 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

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

相應(yīng)的 PostGIS 路徑可能不同,如果失敗,就在上面的路徑附近多嘗試一下,找?guī)讉€(gè) .sql 文件試試看。

轉(zhuǎn)換 .shp 文件到 PostGIS 數(shù)據(jù)庫中

轉(zhuǎn)換 .shp 到 .sql 文件

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

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

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

  • -W GBK:如果你的 .shp 文件包含中文字符,那么請(qǐng)加上這個(gè)選項(xiàng)
  • -s 3857:指明文件的參考坐標(biāo)系統(tǒng)。我的 .shp 文件使用的是 EPSG:3857
  • ./demo.shp:.shp 文件的路徑
  • entry:表示要導(dǎo)入的數(shù)據(jù)庫表名——假設(shè)這個(gè) .shp 文件表示的是各個(gè)入口,所以我命名為 “entry”
  • demo.sql

得到了 .sql 文件后,就可以直接導(dǎo)入到 PostgreSQL 數(shù)據(jù)庫了。

創(chuàng)建一個(gè) PostGIS 數(shù)據(jù)庫

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

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

導(dǎo)入 .sql 文件

sudo su postgres
psql
\c newdb
\i demo.sql
\d

可以看到,.sql 文件已經(jīng)被導(dǎo)入了。

設(shè)置數(shù)據(jù)庫權(quán)限

OK,現(xiàn)在我們在本機(jī)(服務(wù)器 IP 假設(shè)是 192.168.1.111)用以下命令登錄 psql,會(huì)發(fā)現(xiàn)一段輸出:

$ psql -h 192.168.1.111 -p 5432
psql: 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?

這是因?yàn)?PostgreSQL 默認(rèn)不對(duì)外開放權(quán)限,只對(duì)監(jiān)聽環(huán)回地址。要修改的話,需要找到 postgresql.conf 文件,修改值 listen_addresses:

listen_addresses = '*'

以上就是本次小編整理的關(guān)于Linux中PostgreSQL和PostGIS的安裝和使用的全部內(nèi)容,感謝你對(duì)腳本之家的支持。

相關(guān)文章

  • tomcat服務(wù)器如何配置字符集為utf-8徹底解決中文亂碼的問題詳解

    tomcat服務(wù)器如何配置字符集為utf-8徹底解決中文亂碼的問題詳解

    這篇文章主要給大家介紹了關(guān)于tomcat服務(wù)器如何配置字符集為utf-8徹底解決中文亂碼問題的相關(guān)資料,文中先對(duì)字符集進(jìn)行了簡單的介紹,然后給大家詳細(xì)介紹了解決的方法,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • CentOS 8設(shè)置自動(dòng)更新的完整步驟

    CentOS 8設(shè)置自動(dòng)更新的完整步驟

    這篇文章主要給大家介紹了關(guān)于CentOS 8設(shè)置自動(dòng)更新的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用CentOS 8具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 詳解Linux使用ss命令結(jié)合zabbix對(duì)socket做監(jiān)控

    詳解Linux使用ss命令結(jié)合zabbix對(duì)socket做監(jiān)控

    zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。這篇文章主要分為三塊進(jìn)行說明:介紹ss命令;對(duì)機(jī)器總體的socket進(jìn)行監(jiān)控;某些機(jī)器連接該機(jī)器的數(shù)量進(jìn)行監(jiān)控
    2021-06-06
  • Linux環(huán)境變量配置的完整攻略

    Linux環(huán)境變量配置的完整攻略

    這篇文章主要給大家介紹了關(guān)于Linux環(huán)境變量配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vsftpd配置虛擬用戶登錄的方法

    vsftpd配置虛擬用戶登錄的方法

    這篇文章主要介紹了vsftpd配置虛擬用戶登錄的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Linux中查找文件夾的命令解讀

    Linux中查找文件夾的命令解讀

    這篇文章主要介紹了Linux中查找文件夾的命令,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • ZFS是什么?使用ZFS的理由及特性介紹

    ZFS是什么?使用ZFS的理由及特性介紹

    今天小編就為大家分享一篇關(guān)于ZFS是什么,及其特性介紹與使用理由的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-09-09
  • 詳解linux pwm驅(qū)動(dòng)編寫

    詳解linux pwm驅(qū)動(dòng)編寫

    這篇文章主要介紹了詳解linux pwm驅(qū)動(dòng)編寫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • APACHE 配置文件中文版 httpd.conf FOR Apache 2.2.13

    APACHE 配置文件中文版 httpd.conf FOR Apache 2.2.13

    APACHE配置文件中文版 httpd.conf FOR Apache 2.2.13 ,綜合網(wǎng)上2.0版本的翻譯,加入自己的理解,補(bǔ)充完善。
    2009-11-11
  • CentOS 6.5配置本地Yum源教程

    CentOS 6.5配置本地Yum源教程

    這篇文章主要為大家詳細(xì)介紹了CentOS 6.5配置本地Yum源教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評(píng)論