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

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

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

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

安裝步驟及腳本:

安裝依賴(lài)環(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 )建用戶(hù)和組
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數據庫的目錄
mkdir -p /datafile/pgdata
chown postgres:postgres /datafile/pgdata/*
chown postgres:postgres /usr/local/postgresql/*
chmod -R 775 /datafile/pgdata/*
切換用戶(hù)
su postgres
添加環(huán)境變量,并使之生效(初級用戶(hù)請自行學(xué)習設置)
vi ./.bash_profile
添加以下內容:
# 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 主機名 -p 端口號 -U 用戶(hù)名 -W(強制口令提示) [-d]數據庫名
#psql -h $GHOST -p $PGPORT -U $PGUSER -W -d $PGDATABASE
#PGHOST 設置數據庫服務(wù)器名。 如果它以一個(gè)斜杠開(kāi)頭,那么它聲明一個(gè) Unix 域套接字而不是 TCP/IP 通訊; 其值就是該套接字文件存儲的目錄(在缺省安裝中,這個(gè)目錄會(huì )是 /tmp)
#export PGHOST=$PGDATA
export PGHOST=localhost
#PGPORT 設置 TCP 端口號或者設置與 PostgreSQL 通訊的 Unix 域套接字的文件擴展。
export PGPORT=5432
export PGUSER=postgres #用于與數據庫連接的用戶(hù)名,initdb -U posgtres指定
#export PGDATABASE=demo#數據庫名
修改環(huán)境變量后,可以重新登錄該用戶(hù)或者source .bash_profile讓環(huán)境變量生效。 測試一下:
[postgres@localhost ~]$ source .bash_profile
[postgres@localhost ~]$ psql -V
psql (PostgreSQL) 9.6.2
初始化數據庫
initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W
#或則
initdb -D /datafile/pgdata
看到如下提示信息,表示初始化成功,下一步可以啟動(dòng)數據庫了。
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
查看數據庫狀態(tài):
[postgres@localhost ~]$ pg_ctl status
關(guān)閉數據庫
[postgres@localhost ~]$ pg_ctl stop -D $PGDATA
登錄數據庫: 使用"psql 數據庫名"登錄數據庫。缺省數據庫名時(shí),連接到默認的數據庫postgres。
[postgres@localhost ~]$ psql
使用PostgreSQL數據庫命令行交互工具psql登錄數據庫后,可以執行SQL命令或者psql提供的元命令。使用\?可以查看psql的所有元命令和功能說(shuō)明。
登錄數據庫后,命令行提示符為"數據庫名=#",如:"postgres=#"。
 
登錄后,psql常用的元命令:
 
\?, 查看psql所有可以使用的元命令和說(shuō)明信息;
\l,列出所有的數據庫信息;
\c demodb, 連接到demodb數據庫;
\c[onnect] [數據庫名稱(chēng)|- 用戶(hù)名稱(chēng)|- 主機|- 端口|-], 連接到新的數據庫;
\d, 列出表,視圖和序列;
\d 名稱(chēng), 描述表,視圖,序列,或索引;
\db [模式], 列出表空間
\di [模式], 列出所有索引;
\dt [模式], 列出所有表;
\dT [模式], 列出數據類(lèi)型
\h, 列出所有的SQL命令;
\h select, 列出select語(yǔ)句的語(yǔ)法;
\i file, 執行來(lái)自file的命令;
\q, 退出psql;
select * from pg_stat_activity; 顯示當前活動(dòng)任務(wù)列表.

創(chuàng )建測試數據庫
create database testone;
切換到testone 數據庫
\c testone
創(chuàng )建測試表
create table testone (id integer, name text);
插入測試數據
insert into testone values (1,'testone');
選擇數據
select * from testone ; 
刪除數據庫
[postgres@localhost ~]$ dropdb test;
修改linux 系統用戶(hù)postgres 的密碼
passwd postgres 
PostgresSQL 數據庫配置實(shí)現遠程訪(fǎng)問(wèn),修改 postgresql.conf 文件
vi /datafile/pgdata/postgresql.conf
設置允許遠程連接,修改客戶(hù)端認證配置文件pg_hba.conf,將需要遠程訪(fǎng)問(wèn)數據庫的IP地址或地址段加入該文件
vi /datafile/pgdata/pg_hba.conf
找到
host    all             all             127.0.0.1/32            trust
把上面的信息改成以下內容
host    all             all             0.0.0.0/0               trust
#設置監聽(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配置文件參數優(yōu)化
下一篇:CentOS6.8 CentOS7 安裝MongoDB

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