Linux下PostgreSQL 的安裝與配置

來源:互聯網
上載者:User

一、簡介

PostgreSQL 是一種非常複雜的對象-關係型資料庫管理系統(ORDBMS),也是目前功能最強大,特性最豐富和最複雜的自由軟體資料庫系統。有些特性甚至連商務資料庫都不具備。這個起源於伯克利(BSD)的資料庫研究計劃目前已經衍產生一項國際開發項目,並且有非常廣泛的使用者。

二、系統內容

系統平台:CentOS release 6.3 (Final)

PostgreSQL 版本:PostgreSQL 9.2.4

防火牆已關閉/iptables: Firewall is not running.

SELINUX=disabled

三、安裝方式

A. 下載RPM包安裝

B. yum 安裝

C. 源碼包安裝

四、安裝過程

A. RPM包安裝

1. 檢查PostgreSQL 是否已經安裝

[root@TS-DEV ~]# rpm -qa|grep postgres[root@TS-DEV ~]# 

若已經安裝,則使用rpm -e 命令卸載。

2. 下載RPM包

#wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/postgresql92-server-9.2.4-1PGDG.rhel6.i686.rpm#wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/postgresql92-contrib-9.2.4-1PGDG.rhel6.i686.rpm#wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/postgresql92-libs-9.2.4-1PGDG.rhel6.i686.rpm#wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/postgresql92-9.2.4-1PGDG.rhel6.i686.rpm

3. 安裝PostgreSQL,注意安裝順序

# rpm -ivh postgresql92-libs-9.2.4-1PGDG.rhel6.i686.rpm 
# rpm -ivh postgresql92-9.2.4-1PGDG.rhel6.i686.rpm
# rpm -ivh postgresql92-server-9.2.4-1PGDG.rhel6.i686.rpm 
# rpm -ivh postgresql92-contrib-9.2.4-1PGDG.rhel6.i686.rpm

4. 初始化PostgreSQL庫

PostgreSQL 服務初次啟動的時候會提示初始化。

# service postgresql-9.2 initdb

5. 啟動服務

# service postgresql-9.2 start

6. 把PostgreSQL 服務加入到啟動列表

# chkconfig postgresql-9.2 on# chkconfig --list|grep postgres

7. 修改PostgreSQL資料庫使用者postgres的密碼(注意不是linux系統帳號)

PostgreSQL資料庫預設會建立一個postgres的資料庫使用者作為資料庫的管理員,預設密碼為空白,我們需要修改為指定的密碼,這裡設定為’postgres’。

# su - postgres$ psql# ALTER USER postgres WITH PASSWORD 'postgres';# select * from pg_shadow ;

8. 測試資料庫

8.1 建立測試資料庫

# create database david;

8.2 切換到david 資料庫

# \c david

8.3 建立測試表

david=# create table test (id integer,name text);

8.4 插入測試資料

david=# insert into test values (1,'david');INSERT 0 1david=# 

8.5 選擇資料

david=# select * from test ; id | name  ----+-------  1 | david(1 row)david=# 

測試成功。

9. 修改linux系統使用者postgres的密碼

PostgreSQL資料庫預設會建立一個linux系統使用者postgres,通過passwd 命令設定系統使用者的密碼為post123。

# passwd postgres

10. 修改PostgresSQL資料庫配置實現遠端存取

10.1 修改postgresql.conf 檔案

# vi /var/lib/pgsql/9.2/data/postgresql.conf

如果想讓PostgreSQL監聽整個網路的話,將listen_addresses前的#去掉,並將listen_addresses = 'localhost' 改成listen_addresses = '*'

10.2 修改用戶端認證設定檔pg_hba.conf

將需要遠端存取資料庫的IP地址或位址區段加入該檔案。

# vi /var/lib/pgsql/9.2/data/pg_hba.conf

11. 重啟服務以使設定生效

# service postgresql-9.2 restart

12. 遠程測試連接

串連成功。

B. yum 安裝

1. 將剛才安裝的PostgreSQL 卸載

//停止PostgreSQL服務

# /etc/init.d/postgresql-9.2 stop

//查看已安裝的包

# rpm -qa|grep postgres

//卸載

 

 

 

 

 

1、下載Postgresql原始碼

 linux-david:~/postgresql/postgresql-9.0.3$ wget http://ftp.postgresql.org/pub/source/v9.0.3/postgresql-9.0.3.tar.bz2

2、解壓該檔案

 linux-david:~/postgresql/postgresql-9.0.3$ tar xjvf postgresql-9.0.3.tar.bz2

3、進入解壓後的目錄

 linux-david:~/postgresql/postgresql-9.0.3$ cd postgresql-9.0.3/

4、查看INSTALL

INSTALL檔案中Short Version部分解釋了如何安裝postgresql的命令,Requirements部分描述了安裝postgresql所依賴的lib,比較長,先 configure試一下,如果出現error,那麼需要檢查是否滿足了Requirements的要求。

Short Version

./configure
gmake
su
gmake install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test

5、執行INSTALL檔案中Short Version的命令,開始編譯安裝postgrepsql資料庫。

 linux-david:~/postgresql/postgresql-9.0.3$ ./configure

在我的環境下執行configure命令時,出現如下錯誤:

checking for main in -lm... yes

checking for library containing setproctitle... no

checking for library containing dlopen... -ldl

checking for library containing socket... none required

checking for library containing shl_load... no

checking for library containing getopt_long... none required

checking for library containing crypt... -lcrypt

checking for library containing fdatasync... none required

checking for library containing gethostbyname_r... none required

checking for library containing shmget... none required

checking for -lreadline... no

checking for -ledit... no

configure: error: readline library not found

If you have readline already installed, see config.log for details on the

failure.  It is possible the compiler isnt looking in the proper directory.

 

Use --without-readline to disable readline support. 

顯然是postgresql安裝所需的依賴項沒有滿足,安裝readline包: 

sudo apt-get install libreadline5-dev

sudo apt-get install zlib1g-dev 

安裝readline包之後,重新configure,成功。

6、make

 linux-david:~/postgresql/postgresql-9.0.3$ make

7、make install

 linux-david:~/postgresql/postgresql-9.0.3$ make install

8、添加使用者postgres

 linux-david:~/postgresql/postgresql-9.0.3$ sudo adduser postgres

9、建立資料庫檔案隱藏檔夾

 linux-david:~/postgresql/postgresql-9.0.3$ sudo mkdir /usr/local/pgsql/data

10、改變先前建立的data目錄的檔案夾的許可權

 linux-david:~/postgresql/postgresql-9.0.3$ sudo chown postgres /usr/local/pgsql/data

11、切換使用者

su - postgres 

12、綁定資料庫檔案儲存目錄

 postgres:~/postgresql/postgresql-9.0.3$ sudo /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

13、啟動資料庫

postgres:~/postgresql/postgresql-9.0.3$ sudo /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

[1] 18635

 

14、建立資料庫test

postgres-linux:~$ /usr/local/pgsql/bin/createdb test 

15、串連到test資料庫

postgres-linux:~$ /usr/local/pgsql/bin/psql test

psql (9.0.3)

Type "help" for help.

test=#

 

 

16、建立表table1

test=# create table table1 (

test(# id integer

test(# );

CREATE TABLE

test=#

 

17、向table1表中插入一條記錄

 test=# insert into table1 values(1);

INSERT 0 1

 

18、查詢剛剛插入的記錄

 test=# select * from table1;

 id

----

  1

(1 row)

 

 

 

Tips:

Postgresql是一款object-relational DBMS,提供了如下的feature:

複雜查詢complex queries

外鍵foreign key 

觸發器trigger

 視圖views

支援事務transactional integrity 

並發控制multiversion concurrency control 

另外值得一提的是 Postgresql資料庫提供了強大的拓展功能,能夠支援使用者對其進行拓展。 

更為重要的是Postgresql是open soure,授權如下:

PostgreSQL can be used, modified, and distributed by anyone free of charge for any purpose, be it private, commercial, or academic.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.