Linux下PostgreSQL原始碼安裝

urgel_babay發表於2016-05-11

1、首先安裝依賴包,避免在安裝過程中出現問題

shell> yum install gcc gcc-c++ automake autoconf libtool make
shell> yum install readline-devel
shell> yum install zlib-devel

2、建立postgre使用者及使用者組

shell> groupadd postgre
shell> useradd -g postgre postgre   
shell> passwd postgre                #修改密碼
shell> id postgre
uid=500(postgre) gid=501(postgre) 組=501(postgre)

3、編譯安裝postgre

shell> tar zxvf postgresql-9.3.6.tar.gz
shell> cd postgresql-9.3.6
shell> ./configure --prefix=/db/pgsql
shell> make && make install  
PostgreSQL installation complete.

4、設定資料庫目錄許可權並初始化資料庫

shell> mkdir -p /db/pgsql/data
shell> chown -R postgre.postgre /db/pgsql/
shell> cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
shell> su - postgre

# 初始化資料庫
shell> /db/pgsql/bin/initdb -D /db/pgsql/data/
The files belonging to this database system will be owned by user "postgre".
This user must also own the server process.

The database cluster will be initialized with locale "zh_CN.UTF-8".
The default database encoding has accordingly been set to "UTF8".
initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
The default text search configuration will be set to "simple".

Data page checksums are disabled.

fixing permissions on existing directory /db/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
creating configuration files ... ok
creating template1 database in /db/pgsql/data/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:

    /db/pgsql/bin/postgres -D /db/pgsql/data/
or
    /db/pgsql/bin/pg_ctl -D /db/pgsql/data/ -l logfile start

5、設定環境變數

shell> vi .bash_profile
==================================================================
PATH=$PATH:$HOME/bin:/db/pgsql/bin
export PGDATA=/db/pgsql/data
export PGHOME=/db/pgsql
export LANG=zh_CN.UTF-8
export PGPORT=5432
export PATH
==================================================================
shell> source .bash_profile

6、開啟postgre服務

shell> pg_ctl -D /db/pgsql/data/ -l /db/pgsql/log/logfile start 
server starting

shell> tail -f /db/pgsql/logfile
LOG:  database system was shut down at 2015-04-20 17:59:36 CST
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started

7、測試連線資料庫

shell> createdb mydb
shell> psql -h 127.0.0.1 -p 5432 -U postgre -W mydb
Password for user postgre: 
psql (9.3.6)
Type "help" for help.

mydb=# 

# 顯示當前資料庫
mydb=# \l
                                List of databases
   Name    |  Owner  | Encoding |   Collate   |    Ctype    |  Access privileges  
-----------+---------+----------+-------------+-------------+---------------------
 mydb      | postgre | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 postgres  | postgre | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0 | postgre | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgre         +
           |         |          |             |             | postgre=CTc/postgre
 template1 | postgre | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgre         +
           |         |          |             |             | postgre=CTc/postgre
(4 rows)

# 退出命令列
mydb=# \q

整理自網路

Svoid
2015-04-20

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30936525/viewspace-2097937/,如需轉載,請註明出處,否則將追究法律責任。

相關文章