POSTGRESQL小玩

來源:互聯網
上載者:User

標籤:

因為CDH上需要用它來建HIVE的元庫。。。

參考:

http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.html

一、簡介

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 是否已經安裝

# rpm -qa|grep postgres

若已經安裝,則使用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=# 

測試完成,RPM包安裝成功。

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

//卸載

# rpm -e postgresql92-server-9.2.4-1PGDG.rhel6.i686

# rpm -e postgresql92-contrib-9.2.4-1PGDG.rhel6.i686

# rpm -e postgresql92-9.2.4-1PGDG.rhel6.i686

# rpm -e postgresql92-libs-9.2.4-1PGDG.rhel6.i686

 

2. yum 安裝

如果是預設yum 安裝的話,會安裝較低版本的PostgreSQL 8.4,這不符合我們的要求。

我們使用PostgreSQL Yum Repository 來安裝最新版本的PostgreSQL。

2.1 安裝PostgreSQL yum repository

# rpm -i http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-redhat92-9.2-7.noarch.rpm

2.2 安裝新版本PostgreSQL

# yum install postgresql92-server postgresql92-contrib

2.3 查看安裝

3. 初始化並啟動資料庫

4. 測試

其他步驟如A方式。

C. 源碼包安裝

1. 下載PostgreSQL 源碼包

# wget http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2

2. 解壓源碼包

# tar xjf postgresql-9.2.4.tar.bz2

3. 進入解壓後的目錄

# cd postgresql-9.2.4

4. 查看INSTALL 檔案

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

5. 開始編譯安裝PostgreSQL 資料庫。

[[email protected] postgresql-9.2.4]# ./configure 

configure 成功,無錯誤。

6. 執行gmake

[[email protected] postgresql-9.2.4]# gmake

gmake 成功,Ready to install.

7. 執行gmake install

[[email protected] postgresql-9.2.4]# gmake install

gmake install 成功,到這一步,PostgreSQL 源碼編譯安裝完成,下面開始配置PostgreSQL.

8. 設定環境變數

# vi .bash_profile

把 PATH=$PATH:$HOME/bin

改成 PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin

儲存退出。

讓環境變數生效:

# source .bash_profile 

9. 添加使用者postgres

# adduser postgres

* 更改使用者目錄(可選操作)

# vi /etc/passwd

把 postgres:x:528:528::/home/postgres:/bin/bash

改成 postgres:x:528:528::/usr/local/pgsql:/bin/bash

將.bash_profile 移動到新的使用者目錄並修改許可權

# cp /home/postgres/.bash_profile /usr/local/pgsql/

# chown postgres.postgres .bash_profile

刪除使用者目錄:

[[email protected] home]# rm -rf postgres/

10. 初始化資料庫

10.1 建立資料目錄

# mkdir /usr/local/pgsql/data

10.2 更改許可權

# chown postgres /usr/local/pgsql/data

10.3 切換到postgres 使用者

# su - postgres

10.4 init db

$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/

到這裡資料的初始化就完成了。

11. 系統服務

11.1 回到root 使用者

$ exit

11.2 複製安裝目錄下的linux檔案到/etc/init.d/

進入postgresql 的安裝目錄(即剛剛使用tar命令解壓的目錄)

# cd postgresql-9.2.4

# cp contrib/start-scripts/linux /etc/init.d/postgresql

11.3 添加執行許可權

# chmod +x /etc/init.d/postgresql

11.4 啟動資料庫

11.5 讓資料庫開機啟動

# chkconfig --add postgresql 

# chkconfig postgresql on

11.6 建立資料庫操作的記錄檔案

12. 測試使用

# su - postgres

$ createdb test

$ psql test

test=# create table test(id int);

 

源碼編譯安裝成功。

POSTGRESQL小玩

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.