服務(wù)項(xiàng)目:網(wǎng)站建設(shè)、仿站、程序開(kāi)發(fā)、APP開(kāi)發(fā)設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)設(shè)計(jì)、企業(yè)網(wǎng)站設(shè)計(jì)、電子商務(wù)網(wǎng)站開(kāi)發(fā)、網(wǎng)站維護(hù)、網(wǎng)站推廣、UX/UI 、HTML5、CSS3、JS / Jquery ...
四川???萍加邢薰?></a></div>
                    <div   id=四川???萍加邢薰? title=
四川浚??萍加邢薰?(開(kāi)發(fā)設(shè)計(jì)官網(wǎng))TEL : 15308000360 / QQ : 38585404

您的位置:首頁(yè) > 技術(shù)經(jīng)驗(yàn) > 數(shù)據(jù)庫(kù) > 正文

Linux環(huán)境CentOS中源碼編譯安裝PostgreSQL
技術(shù)支持服務(wù)電話:15308000360 【7x24提供運(yùn)維服務(wù),解決各類系統(tǒng)/軟硬件疑難技術(shù)問(wèn)題】

PostgreSQL版本: postgresql-9.6.2.tar.gz
數(shù)據(jù)存放目錄: /datafile/pgdata
軟件安裝位置: /usr/local/postgresql

安裝步驟及腳本:

安裝依賴環(huán)境

yum install -y gcc-c++ libxml2 libxml2-devel zlib zlib-devel libxslt libxslt-devel openssl openssl-devel systemtap-sdt-devel.x86_64 perl-ExtUtils-Embed readline readline-devel pam pam-devel tcl tcl-devel openldap openldap-devel python python-devel
創(chuàng)建用戶和組
groupadd postgres
useradd -g postgres postgres
解壓
tar zxvf postgresql-9.6.2.tar.gz
cd postgresql-9.6.2
配置
./configure --prefix=/usr/local/postgresql --with-pgport=5432 --with-perl --with-python --with-tcl --with-openssl --with-pam  --without-ldap --with-libxml --with-libxslt --enable-thread-safety --with-wal-blocksize=16 --with-blocksize=16 --enable-dtrace --enable-debug
編譯安裝
make && make install
安裝contrib目錄下的一些工具,是第三方組織的一些工具代碼,建議安裝 打開(kāi) postgresql-9.6.2/contrib
make && make install
創(chuàng)建postgres數(shù)據(jù)庫(kù)的目錄
mkdir -p /datafile/pgdata
chown postgres:postgres /datafile/pgdata/*
chown postgres:postgres /usr/local/postgresql/*
chmod -R 775 /datafile/pgdata/*
切換用戶
su postgres
添加環(huán)境變量,并使之生效(初級(jí)用戶請(qǐng)自行學(xué)習(xí)設(shè)置)
vi ./.bash_profile
添加以下內(nèi)容:
# add PG env
export PGHOME=/usr/local/postgresql
export PGDATA=/datafile/pgdata
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
alias rm='rm  -i'
alias ll='ls -lh'
#alias pg_start='pg_ctl start -D $PGDATA'
#alias pg_stop='pg_ctl stop -D $PGDATA -m fast'

#psql -h 主機(jī)名 -p 端口號(hào) -U 用戶名 -W(強(qiáng)制口令提示) [-d]數(shù)據(jù)庫(kù)名
#psql -h $GHOST -p $PGPORT -U $PGUSER -W -d $PGDATABASE
#PGHOST 設(shè)置數(shù)據(jù)庫(kù)服務(wù)器名。 如果它以一個(gè)斜杠開(kāi)頭,那么它聲明一個(gè) Unix 域套接字而不是 TCP/IP 通訊; 其值就是該套接字文件存儲(chǔ)的目錄(在缺省安裝中,這個(gè)目錄會(huì)是 /tmp)
#export PGHOST=$PGDATA
export PGHOST=localhost
#PGPORT 設(shè)置 TCP 端口號(hào)或者設(shè)置與 PostgreSQL 通訊的 Unix 域套接字的文件擴(kuò)展。
export PGPORT=5432
export PGUSER=postgres #用于與數(shù)據(jù)庫(kù)連接的用戶名,initdb -U posgtres指定
#export PGDATABASE=demo#數(shù)據(jù)庫(kù)名
修改環(huán)境變量后,可以重新登錄該用戶或者source .bash_profile讓環(huán)境變量生效。 測(cè)試一下:
[postgres@localhost ~]$ source .bash_profile
[postgres@localhost ~]$ psql -V
psql (PostgreSQL) 9.6.2
初始化數(shù)據(jù)庫(kù)
initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W
#或則
initdb -D /datafile/pgdata
看到如下提示信息,表示初始化成功,下一步可以啟動(dòng)數(shù)據(jù)庫(kù)了。
Success. You can now start the database server using:

    postgres -D /db/pgdata
or
    pg_ctl -D /db/pgdata -l logfile start
啟動(dòng)服務(wù)
pg_ctl start -D $PGDATA -l pgsql.log
#或則
pg_ctl -D /datafile/pgdata -l /datafile/pgdata/logfile start
查看數(shù)據(jù)庫(kù)狀態(tài):
[postgres@localhost ~]$ pg_ctl status
關(guān)閉數(shù)據(jù)庫(kù)
[postgres@localhost ~]$ pg_ctl stop -D $PGDATA
登錄數(shù)據(jù)庫(kù): 使用"psql 數(shù)據(jù)庫(kù)名"登錄數(shù)據(jù)庫(kù)。缺省數(shù)據(jù)庫(kù)名時(shí),連接到默認(rèn)的數(shù)據(jù)庫(kù)postgres。
[postgres@localhost ~]$ psql
使用PostgreSQL數(shù)據(jù)庫(kù)命令行交互工具psql登錄數(shù)據(jù)庫(kù)后,可以執(zhí)行SQL命令或者psql提供的元命令。使用\?可以查看psql的所有元命令和功能說(shuō)明。
登錄數(shù)據(jù)庫(kù)后,命令行提示符為"數(shù)據(jù)庫(kù)名=#",如:"postgres=#"。
 
登錄后,psql常用的元命令:
 
\?, 查看psql所有可以使用的元命令和說(shuō)明信息;
\l,列出所有的數(shù)據(jù)庫(kù)信息;
\c demodb, 連接到demodb數(shù)據(jù)庫(kù);
\c[onnect] [數(shù)據(jù)庫(kù)名稱|- 用戶名稱|- 主機(jī)|- 端口|-], 連接到新的數(shù)據(jù)庫(kù);
\d, 列出表,視圖和序列;
\d 名稱, 描述表,視圖,序列,或索引;
\db [模式], 列出表空間
\di [模式], 列出所有索引;
\dt [模式], 列出所有表;
\dT [模式], 列出數(shù)據(jù)類型
\h, 列出所有的SQL命令;
\h select, 列出select語(yǔ)句的語(yǔ)法;
\i file, 執(zhí)行來(lái)自file的命令;
\q, 退出psql;
select * from pg_stat_activity; 顯示當(dāng)前活動(dòng)任務(wù)列表.

創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)
create database testone;
切換到testone 數(shù)據(jù)庫(kù)
\c testone
創(chuàng)建測(cè)試表
create table testone (id integer, name text);
插入測(cè)試數(shù)據(jù)
insert into testone values (1,'testone');
選擇數(shù)據(jù)
select * from testone ; 
刪除數(shù)據(jù)庫(kù)
[postgres@localhost ~]$ dropdb test;
修改linux 系統(tǒng)用戶postgres 的密碼
passwd postgres 
PostgresSQL 數(shù)據(jù)庫(kù)配置實(shí)現(xiàn)遠(yuǎn)程訪問(wèn),修改 postgresql.conf 文件
vi /datafile/pgdata/postgresql.conf
設(shè)置允許遠(yuǎn)程連接,修改客戶端認(rèn)證配置文件pg_hba.conf,將需要遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù)的IP地址或地址段加入該文件
vi /datafile/pgdata/pg_hba.conf
找到
host    all             all             127.0.0.1/32            trust
把上面的信息改成以下內(nèi)容
host    all             all             0.0.0.0/0               trust
#設(shè)置監(jiān)聽(tīng)整個(gè)網(wǎng)絡(luò),查找“ listen_addresses ”字符串
vi /datafile/pgdata/postgresql.conf
修改為如下:
listen_addresses = '*' 
重啟服務(wù)
pg_ctl -D /datafile/pgdata -l /datafile/pgdata/logfile restart
停止服務(wù)
pg_ctl -D /datafile/pgdata -l /datafile/pgdata/logfile stop
查看端口是否啟用
netstat -anp | grep 5432



上一篇:MariaDB/MySQL配置文件參數(shù)優(yōu)化
下一篇:CentOS6.8 CentOS7 安裝MongoDB

相關(guān)熱詞搜索:centos postgressql linux