ubuntu下安裝postgres

PostgreSQL 是一款強大的,開源的,對象關係型數據庫系統。它支持全部的主流操做系統,包括 Linux、Unix(AIX、BSD、HP-UX,SGI IRIX、Mac OS、Solaris、Tru64) 以及 Windows 操做系統。php

下面是 Ubuntu 發起者 Mark Shuttleworth 對 PostgreSQL 的一段評價。web

PostgreSQL 是一款極讚的數據庫系統。剛開始咱們在 Launchpad 上使用它的時候,並不肯定它可否勝任工做。但我是錯了。它很強壯、快速,在各個方面都很專業。sql

— Mark Shuttleworth.數據庫

在這篇簡短的指南中,讓咱們來看看如何在 Ubuntu 15.10 服務器中安裝 PostgreSQL 9.4。apache

安裝 PostgreSQL

默認倉庫中就有可用的 PostgreSQL。在終端中輸入下面的命令安裝它。ubuntu

  1. sudo apt-get install postgresql postgresql-contrib

若是你須要其它的版本,按照下面那樣先添加 PostgreSQL 倉庫而後再安裝。瀏覽器

PostgreSQL apt 倉庫 支持 amd64 和 i386 架構的 Ubuntu 長期支持版(10.0四、12.04 和 14.04),以及非長期支持版(14.10)。對於其它非長期支持版,該軟件包雖然沒有徹底支持,但使用和 LTS 版本近似的也能正常工做。服務器

Ubuntu 14.10 系統:

新建文件/etc/apt/sources.list.d/pgdg.list網絡

  1. sudo vi /etc/apt/sources.list.d/pgdg.list

用下面一行添加倉庫:架構

  1. deb http://apt.postgresql.org/pub/repos/apt/ utopic-pgdg main

注意: 上面的庫只能用於 Ubuntu 14.10。尚未升級到 Ubuntu 15.04 和 15.10。

對於 Ubuntu 14.04,添加下面一行:

  1. deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main

對於 Ubuntu 12.04,添加下面一行:

  1. deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main

導入庫簽名密鑰:

  1. wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

更新軟件包列表:

  1. sudo apt-get update

而後安裝須要的版本。

  1. sudo apt-get install postgresql-9.4

訪問 PostgreSQL 命令窗口

默認的數據庫名稱和數據庫用戶名稱都是 「postgres」。切換到 postgres 用戶進行 postgresql 相關的操做:

  1. sudo -u postgres psql postgres

示例輸出:

  1. psql (9.4.5)
  2. Type "help" for help.
  3. postgres=#

要退出 postgresql 窗口,在 psql 窗口輸入 \q 退出到終端。

設置 「postgres」 用戶密碼

登陸到 postgresql 窗口,

  1. sudo -u postgres psql postgres

用下面的命令爲用戶 postgres 設置密碼:

  1. postgres=# \password postgres
  2. Enter new password:
  3. Enter it again:
  4. postgres=# \q

要安裝 PostgreSQL Adminpack 擴展,在 postgresql 窗口輸入下面的命令:

  1. sudo -u postgres psql postgres

  1. postgres=# CREATE EXTENSION adminpack;
  2. CREATE EXTENSION

在 psql 窗口輸入 \q 從 postgresql 窗口退回到終端。

建立新用戶和數據庫

例如,讓咱們建立一個新的用戶,名爲 「senthil」,密碼是 「ubuntu」,以及名爲 「mydb」 的數據庫。

  1. sudo -u postgres createuser -D -A -P senthil

  1. sudo -u postgres createdb -O senthil mydb

刪除用戶和數據庫

要刪除數據庫,首先切換到 postgres 用戶:

  1. sudo -u postgres psql postgres

輸入命令:

  1. $ drop database <database-name>

要刪除一個用戶,輸入下面的命令:

  1. $ drop user <user-name>

配置 PostgreSQL-MD5 驗證

MD5 驗證 要求用戶提供一個 MD5 加密的密碼用於認證。首先編輯 /etc/postgresql/9.4/main/pg_hba.conf 文件:

  1. sudo vi /etc/postgresql/9.4/main/pg_hba.conf

按照下面所示添加或修改行

  1. [...]
  2. # TYPE DATABASE USER ADDRESS METHOD
  3. # "local" is for Unix domain socket connections only
  4. local all all md5
  5. # IPv4 local connections:
  6. host all all 127.0.0.1/32 md5
  7. host all all 192.168.1.0/24 md5
  8. # IPv6 local connections:
  9. host all all ::1/128 md5
  10. [...]

其中, 192.168.1.0/24 是個人本地網絡 IP 地址。用你本身的地址替換。

重啓 postgresql 服務以使更改生效:

  1. sudo systemctl restart postgresql

或者,

  1. sudo service postgresql restart

配置 PostgreSQL TCP/IP 配置

默認狀況下,沒有啓用 TCP/IP 鏈接,所以其它計算機的用戶不能訪問 postgresql。爲了容許其它計算機的用戶訪問,編輯文件/etc/postgresql/9.4/main/postgresql.conf:

  1. sudo vi /etc/postgresql/9.4/main/postgresql.conf

找到下面一行:

  1. [...]
  2. #listen_addresses = 'localhost'
  3. [...]
  4. #port = 5432
  5. [...]

取消該行的註釋,而後設置你 postgresql 服務器的 IP 地址,或者設置爲 ‘*’ 監聽全部用戶。你應該謹慎設置全部遠程用戶均可以訪問 PostgreSQL。

  1. [...]
  2. listen_addresses = '*'
  3. [...]
  4. port = 5432
  5. [...]

重啓 postgresql 服務保存更改:

  1. sudo systemctl restart postgresql

或者,

  1. sudo service postgresql restart

用 phpPgAdmin 管理 PostgreSQL

phpPgAdmin 是基於 web 用 PHP 寫的 PostgreSQL 管理工具。

默認倉庫中有可用的 phpPgAdmin。用下面的命令安裝 phpPgAdmin:

  1. sudo apt-get install phppgadmin

默認狀況下,你能夠在本地系統的 web 瀏覽器用 http://localhost/phppgadmin 訪問 phppgadmin。

要訪問遠程系統,在 Ubuntu 15.10 上作以下操做:

編輯文件 /etc/apache2/conf-available/phppgadmin.conf,

  1. sudo vi /etc/apache2/conf-available/phppgadmin.conf

找到 Require local 的一行在這行前面添加 # 註釋掉它。

  1. #Require local

添加下面的一行:

  1. allow from all

保存並退出文件。

而後重啓 apache 服務。

  1. sudo systemctl restart apache2

對於 Ubuntu 14.10 及以前版本:

編輯 /etc/apache2/conf.d/phppgadmin:

  1. sudo nano /etc/apache2/conf.d/phppgadmin

註釋掉下面一行:

  1. [...]
  2. #allow from 127.0.0.0/255.0.0.0 ::1/128

取消下面一行的註釋使全部系統均可以訪問 phppgadmin。

  1. allow from all

編輯 /etc/apache2/apache2.conf:

  1. sudo vi /etc/apache2/apache2.conf

添加下面一行:

  1. Include /etc/apache2/conf.d/phppgadmin

而後重啓 apache 服務。

  1. sudo service apache2 restart

配置 phpPgAdmin

編輯文件 /etc/phppgadmin/config.inc.php, 作如下更改。下面大部分選項都帶有解釋。認真閱讀以便了解爲何要更改這些值。

  1. sudo nano /etc/phppgadmin/config.inc.php

找到下面一行:

  1. $conf['servers'][0]['host'] = '';

按照下面這樣更改:

  1. $conf['servers'][0]['host'] = 'localhost';

找到這一行:

  1. $conf['extra_login_security'] = true;

更改值爲 false

  1. $conf['extra_login_security'] = false;

找到這一行:

  1. $conf['owned_only'] = false;

更改值爲 true

  1. $conf['owned_only'] = true;

保存並關閉文件。重啓 postgresql 服務和 Apache 服務。

  1. sudo systemctl restart postgresql
  2. sudo systemctl restart apache2

或者,

  1. sudo service postgresql restart
  2. sudo service apache2 restart

如今打開你的瀏覽器並導航到 http://ip-address/phppgadmin。你會看到如下截圖。

phpPgAdmin

phpPgAdmin

用你以前建立的用戶登陸。我以前已經建立了一個名爲 「senthil」 的用戶,密碼是 「ubuntu」,所以我以 「senthil」 用戶登陸。

phpPgAdmin

phpPgAdmin

而後你就能夠訪問 phppgadmin 面板了。

phpPgAdmin

phpPgAdmin

用 postgres 用戶登陸:

phpPgAdmin

phpPgAdmin

就是這樣。如今你能夠用 phppgadmin 可視化建立、刪除或者更改數據庫了。

加油!

相關文章
相關標籤/搜索