在Ubuntu上安裝開源數(shù)據(jù)庫PostgreSQL 9.4
簡介
PostgreSQL 是一款強大的,開源的,對象關(guān)系型數(shù)據(jù)庫系統(tǒng)。它支持所有的主流操作系統(tǒng),包括 Linux、Unix(AIX、BSD、HP-UX,SGI IRIX、Mac OS、Solaris、Tru64) 以及 Windows 操作系統(tǒng)。
下面是 Ubuntu 發(fā)起者 Mark Shuttleworth 對 PostgreSQL 的一段評價。
PostgreSQL 是一款極贊的數(shù)據(jù)庫系統(tǒng)。剛開始,我們在 Launchpad 上使用它的時候,并不確定它能否勝任工作。但我是錯了。它很強壯、快速,在各個方面都很專業(yè)。
— Mark Shuttleworth.
在這篇簡短的指南中,讓我們來看看如何在 Ubuntu 15.10 服務(wù)器中安裝 PostgreSQL 9.4。
安裝 PostgreSQL
默認(rèn)倉庫中就有可用的 PostgreSQL。在終端中輸入下面的命令來安裝它。
- sudo apt-get install postgresql postgresql-contrib
如果你需要其它的版本,按照下面那樣先添加 PostgreSQL 倉庫,然后再安裝。
PostgreSQL apt 倉庫支持 amd64 和 i386 架構(gòu)的 Ubuntu 長期支持版(10.04、12.04 和 14.04),以及非長期支持版(14.10)。對于其它非長期支持版,該軟件包雖然沒有完全支持,但使用和 LTS 版本近似的也能正常工作。
Ubuntu 14.10 系統(tǒng):
新建文件/etc/apt/sources.list.d/pgdg.list ;
- sudo vi /etc/apt/sources.list.d/pgdg.list
用下面一行添加倉庫:
- deb http://apt.postgresql.org/pub/repos/apt/ utopic-pgdg main
注意:上面的庫只能用于 Ubuntu 14.10。還沒有升級到 Ubuntu 15.04 和 15.10。
對于 Ubuntu 14.04,添加下面一行:
- deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
對于 Ubuntu 12.04,添加下面一行:
- deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main
導(dǎo)入庫簽名密鑰:
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc
- sudo apt-key add -
更新軟件包列表:
- sudo apt-get update
然后,安裝需要的版本。
- sudo apt-get install postgresql-9.4
訪問 PostgreSQL 命令窗口
默認(rèn)的數(shù)據(jù)庫名稱和數(shù)據(jù)庫用戶名稱都是 “postgres”。切換到 postgres 用戶進行 postgresql 相關(guān)的操作:
- sudo -u postgres psql postgres
示例輸出:
- psql (9.4.5)
- Type "help" for help.
- postgres=#
要退出 postgresql 窗口,在 psql 窗口輸入 \q 退出到終端。
設(shè)置 “postgres” 用戶密碼
登錄到 postgresql 窗口,
- sudo -u postgres psql postgres
用下面的命令為用戶 postgres 設(shè)置密碼:
- postgres=# \password postgres
- Enter new password:
- Enter it again:
- postgres=# \q
要安裝 PostgreSQL Adminpack 擴展,在 postgresql 窗口輸入下面的命令:
- sudo -u postgres psql postgres
- postgres=# CREATE EXTENSION adminpack;
- CREATE EXTENSION
在 psql 窗口輸入 \q ,從 postgresql 窗口退回到終端。
創(chuàng)建新用戶和數(shù)據(jù)庫
例如,讓我們創(chuàng)建一個新的用戶,名為 “senthil”,密碼是 “ubuntu”,以及名為 “mydb” 的數(shù)據(jù)庫。
- sudo -u postgres createuser -D -A -P senthil
- sudo -u postgres createdb -O senthil mydb
刪除用戶和數(shù)據(jù)庫
要刪除數(shù)據(jù)庫,首先切換到 postgres 用戶:
- sudo -u postgres psql postgres
輸入命令:
- $ drop database <database-name>
要刪除一個用戶,輸入下面的命令:
- $ drop user <user-name>
#p#
配置 PostgreSQL-MD5 驗證
MD5 驗證 要求用戶提供一個 MD5 加密的密碼用于認(rèn)證。首先編輯 /etc/postgresql/9.4/main/pg_hba.conf 文件:
- sudo vi /etc/postgresql/9.4/main/pg_hba.conf
按照下面所示添加或修改行。
- [...]
- # TYPE DATABASE USER ADDRESS METHOD
- # "local" is for Unix domain socket connections only
- local all all md5
- # IPv4 local connections:
- host all all 127.0.0.1/32 md5
- host all all 192.168.1.0/24 md5
- # IPv6 local connections:
- host all all ::1/128 md5
- [...]
其中, 192.168.1.0/24 是我的本地網(wǎng)絡(luò) IP 地址。用你自己的地址替換。
重啟 postgresql 服務(wù)以使更改生效:
- sudo systemctl restart postgresql
或者,
- sudo service postgresql restart
配置 PostgreSQL TCP/IP 配置
默認(rèn)情況下,沒有啟用 TCP/IP 連接,因此其它計算機的用戶不能訪問 postgresql。為了允許其它計算機的用戶訪問,編輯文件 /etc/postgresql/9.4/main/postgresql.conf:
- sudo vi /etc/postgresql/9.4/main/postgresql.conf
找到下面一行:
- [...]
- #listen_addresses = 'localhost'
- [...]
- #port = 5432
- [...]
取消該行的注釋,然后設(shè)置你 postgresql 服務(wù)器的 IP 地址,或者設(shè)置為 ‘*’ 監(jiān)聽所有用戶。你應(yīng)該謹(jǐn)慎設(shè)置所有遠(yuǎn)程用戶都可以訪問 PostgreSQL。
- [...]
- listen_addresses = '*'
- [...]
- port = 5432
- [...]
重啟 postgresql 服務(wù)保存更改:
- sudo systemctl restart postgresql
或者,
- sudo service postgresql restart
用 phpPgAdmin 管理 PostgreSQL
phpPgAdmin 是基于 web 用 PHP 寫的 PostgreSQL 管理工具。
默認(rèn)倉庫中有可用的 phpPgAdmin。用下面的命令安裝 phpPgAdmin:
- sudo apt-get install phppgadmin
默認(rèn)情況下,你可以在本地系統(tǒng)的 web 瀏覽器用 http://localhost/phppgadmin 訪問 phppgadmin。
要訪問遠(yuǎn)程系統(tǒng),在 Ubuntu 15.10 上做如下操作:
編輯文件 /etc/apache2/conf-available/phppgadmin.conf,
- sudo vi /etc/apache2/conf-available/phppgadmin.conf
找到 Require local 的一行在這行前面添加 # 注釋掉它。
- #Require local
添加下面的一行:
- allow from all
保存并退出文件。
然后,重啟 apache 服務(wù)。
- sudo systemctl restart apache2
對于 Ubuntu 14.10 及之前版本:
編輯 /etc/apache2/conf.d/phppgadmin:
- sudo nano /etc/apache2/conf.d/phppgadmin
注釋掉下面一行:
- [...]
- #allow from 127.0.0.0/255.0.0.0 ::1/128
取消下面一行的注釋使所有系統(tǒng)都可以訪問 phppgadmin。
- allow from all
編輯 /etc/apache2/apache2.conf:
- sudo vi /etc/apache2/apache2.conf
添加下面一行:
- Include /etc/apache2/conf.d/phppgadmin
然后,重啟 apache 服務(wù)。
- sudo service apache2 restart
#p#
配置 phpPgAdmin
編輯文件 /etc/phppgadmin/config.inc.php, 做以下更改。下面大部分選項都帶有解釋。認(rèn)真閱讀以便了解為什么要更改這些值。
- sudo nano /etc/phppgadmin/config.inc.php
找到下面一行:
- $conf['servers'][0]['host'] = '';
按照下面這樣更改:
- $conf['servers'][0]['host'] = 'localhost';
找到這一行:
- $conf['extra_login_security'] = true;
更改值為 false。
- $conf['extra_login_security'] = false;
找到這一行:
- $conf['owned_only'] = false;
更改值為 true。
- $conf['owned_only'] = true;
保存并關(guān)閉文件。重啟 postgresql 服務(wù)和 Apache 服務(wù)。
- sudo systemctl restart postgresql
- sudo systemctl restart apache2
或者,
- sudo systemctl restart postgresql
- sudo systemctl restart apache2
現(xiàn)在打開你的瀏覽器并導(dǎo)航到 http://ip-address/phppgadmin。你會看到以下截圖。
phpPgAdmin
用你之前創(chuàng)建的用戶登錄。我之前已經(jīng)創(chuàng)建了一個名為 “senthil” 的用戶,密碼是 “ubuntu”,因此我以 “senthil” 用戶登錄。
phpPgAdmin
然后你就可以訪問 phppgadmin 面板了。
phpPgAdmin
用 postgres 用戶登錄:
phpPgAdmin
就是這樣。現(xiàn)在你可以用 phppgadmin 可視化創(chuàng)建、刪除或者更改數(shù)據(jù)庫了。
加油!