1、創建用戶
[root@vkeep ~]# groupadd postgres
[root@vkeep ~]# useradd -g postgres postgres -m -s /bin/bash
[root@vkeep ~]# echo "Database@123" | passwd --stdin postgres
2、安裝依賴包
[root@vkeep ~]# yum install gcc gcc-c++ zlib-devel readline readline-devel perl-ExtUtils-Embed pam-devel openssl openssl-devel cmake libxslt-devel libxml2-devel openldap-devel python-devel tcl tcl-devel bison flex xmlto -y
3、創建數據庫目錄
[root@vkeep ~]# mkdir -p /data/postgres/{soft,postgresql,pgdata}
[root@vkeep ~]# chown -R postgres: /data
4、創建環境變量
[root@vkeep ~]# su - postgres
[postgres@vkeep ~]$ echo 'export PGPORT=5432
export PG_HOME=/data/postgres/postgresql
export PATH=$PG_HOME/bin:$PATH
export PGDATA=$PG_HOME/pgdata
export LD_LIBRARY_PATH=$PG_HOME/lib
export LANG=en_US.utf8
export PGHOST=$PGDATA
export PGUSER=postgres
export PGDATABASE=postgres
' >> ~/.bash_profile && source ~/.bash_profile
5、上傳源碼包,并解壓
# 解壓源碼包
[postgres@vkeep ~]$ cd /data/postgres/soft/
[postgres@vkeep soft]$ tar -zxf postgresql-9.2.4.tar.gz
6、編譯源碼包
[postgres@vkeep soft]$ cd postgresql-9.2.4/
[postgres@vkeep postgresql-9.2.4]$ ./configure --prefix=/data/postgres/postgresql --with-pgport=5432 --with-openssl --with-perl \
--with-tcl --with-python --with-pam --without-ldap --with-libxml --with-libxslt \
--enable-thread-safety --with-wal-blocksize=16 --with-blocksize=8注:
1、--with-blocksize 數據庫需要經常做插入的操作,數據量增長非常快,盡量把此參數設大一點;經常做小數據查詢、更新且內存不是非常大的時候可以設小一點,默認8K即可
2、生產環境不要加 --enable-dtrace --enable-debug ,影響數據庫性能
7、安裝數據庫
[postgres@vkeep postgresql-9.2.4]$ make && make install
8、初始化數據庫
[postgres@vkeep postgresql-9.2.4]$ # 創建目錄
[postgres@vkeep postgresql-9.2.4]$ mkdir $PG_HOME/pgdata
[postgres@vkeep postgresql-9.2.4]$ # 初始化數據庫集簇
[postgres@vkeep postgresql-9.2.4]$ initdb -D $PGDATA -W
9、啟動數據庫
[postgres@vkeep postgresql-9.2.4]$ pg_ctl -D $PGDATA start
10、創建數據庫用戶和數據庫
[postgres@vkeep pgdata]$ psql -d postgres -p 5432
postgres=# create database testdb;
postgres=# create user keep with Superuser password 'keep';
11、配置遠程連接
# 配置連接
[postgres@vkeep pgdata]$ cd $PGDATA
[postgres@vkeep pgdata]$ echo "listen_addresses = '*'
port=5432
unix_socket_directories='/data/postgres/postgresql/pgdata'
" >> postgresql.conf
[postgres@vkeep pgdata]$ echo 'host all all 0.0.0.0/0 md5' >> pg_hba.conf
# 重啟數據庫
[postgres@vkeep pgdata]$ pg_ctl stop
[postgres@vkeep pgdata]$ pg_ctl -D $PGDATA start
# 驗證遠程連接
[postgres@vkeep pgdata]$ psql -d testdb -U keep -p 5432 -h 192.168.140.96