◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
◆◆◆◆◆◆◆◆PostgreSQL安裝部署◆◆◆◆◆◆◆◆
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
前言:項(xiàng)目中使用到了PostgreSQL,目前只涉及安裝部署,及基本使用,通過幾天的學(xué)習(xí),對(duì)PG有個(gè)初步了解,做此整理。
環(huán)境:PostgreSQL 9.6+Redhat 6.3
一、安裝數(shù)據(jù)庫 1、刪除系統(tǒng)中舊版本PostgreSQL
(1)查看現(xiàn)有版本:
rpm -qa | grep postgres
(2)檢查pg服務(wù),停服務(wù)
查看服務(wù):service postgresql-9.4 status
停:service postgresql-9.4 stop
查看進(jìn)程:ps -ef | grep postgres
停:kill -9 12345
(3)刪除現(xiàn)有版本
rpm --nodeps -e postgresql94-libs-9.4.10-1PGDG.rhel6.x86_64
rpm --nodeps -e postgresql94-server-9.4.10-1PGDG.rhel6.x86_64
rpm --nodeps -e postgresql94-contrib-9.4.10-1PGDG.rhel6.x86_64
rpm --nodeps -e postgresql94-9.4.10-1PGDG.rhel6.x86_64
2、下載新版本
https://yum.postgresql.org/9.6/redhat/ 本地址為redhat平臺(tái)9.6版本下載鏈接,如需下載其他版本,將9.6改為其它版本即可。如9.3:https://yum.postgresql.org/9.3 然后選擇平臺(tái)
(1)基礎(chǔ)安裝,需要下載四個(gè)介質(zhì):
postgresql96-libs-9.6.2-2PGDG.rhel6.x86_64.rpm
postgresql96-server-9.6.2-2PGDG.rhel6.x86_64.rpm
postgresql96-9.6.2-2PGDG.rhel6.x86_64.rpm
(2)擴(kuò)展安裝,兩個(gè)介質(zhì):
postgresql96-contrib-9.6.2-2PGDG.rhel6.x86_64.rpm
postgresql96-devel-9.6.2-2PGDG.rhel6.x86_64.rpm
3、安裝PostgreSQL
(1)基礎(chǔ)包按照如下順序安裝:
rpm -ivh postgresql96-libs-9.6.2-2PGDG.rhel6.x86_64.rpm
rpm -ivh postgresql96-9.6.2-2PGDG.rhel6.x86_64.rpm
rpm -ivh postgresql96-server-9.6.2-2PGDG.rhel6.x86_64.rpm
(2)擴(kuò)展:
rpm -ivh postgresql96-contrib-9.6.2-2PGDG.rhel6.x86_64.rpm
rpm -ivh postgresql96-devel-9.6.2-2PGDG.rhel6.x86_64.rpm
注:安裝server可能缺少系統(tǒng)依賴包openssl,或需要升級(jí)如本次安裝server時(shí)報(bào)錯(cuò):libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit) is needed by postgresql96-server-9.6.2-2PGDG.rhel6.x86_64
刪除舊版本openssl:
rpm -qa opensssl
rpm --nodeps -e openssl
下載openssl-1.0.1e-48.el6.x86_64.rpm安裝后,即可繼續(xù)安裝server。
根據(jù)提示的具體版本下載安裝即可。
4、將初始化數(shù)據(jù)指定到自定義路徑
PostgreSQL默認(rèn)將數(shù)據(jù)文件等配置文件初始化到/var/lib/pgsql/9.6/data,實(shí)際應(yīng)用中,我們希望將其放置到自定義的路徑下(單獨(dú)掛載的文件系統(tǒng)),這就需要初始化數(shù)據(jù)前,將路徑指定到自定義路徑
修改postgres用戶.bash_profile中$PGDATA變量到自定義路徑。
注意:這個(gè)自定義路徑要有postgres:postgres權(quán)限,注意賦權(quán)。
5、初始化數(shù)據(jù)庫(初始化過程會(huì)建Postgres主庫,無主庫則PostgreSQL無法啟動(dòng))
service postgresql-9.6 initdb
6、啟動(dòng)數(shù)據(jù)庫
service postgresql-9.6 start
二、使用數(shù)據(jù)庫 0、簡介postgreSQL數(shù)據(jù)庫結(jié)構(gòu),以便有清晰的管理思路。
(1)postgreSQL對(duì)象層次:
服務(wù)器、數(shù)據(jù)庫、模式、表或其他類型對(duì)象。而用戶與schema清晰分離開了。創(chuàng)建user與創(chuàng)建schema完全不相關(guān)。創(chuàng)建user后,賦予其指定數(shù)據(jù)庫/schema的權(quán)限,即可訪問對(duì)應(yīng)db和shema。
而創(chuàng)建schma是在某個(gè)db下進(jìn)行,創(chuàng)建后,可在schema下創(chuàng)建表等對(duì)象,用戶對(duì)其有對(duì)應(yīng)權(quán)限才可以對(duì)其做對(duì)應(yīng)操作。
安裝postgresql后,啟動(dòng)PostgreSQL服務(wù),進(jìn)入默認(rèn)的postgres用戶。
1、使用postgres用戶(超級(jí)用戶,類似oracle的sysdba)登錄數(shù)據(jù)庫:
#su - postgres ####postgres系統(tǒng)用戶即為默認(rèn)的postgreSQL操作用戶,類似oracle的oracle用戶。
$psql ####進(jìn)入postgres用戶后執(zhí)行psql即可登錄到pg中,這樣默認(rèn)是登錄到:postgres用戶 postgres庫;類似oracle的sqlplus / as sysdba
注意:安裝后,psql可執(zhí)行程序在/usr/pgsql-9.6/bin/psql,如果postgres用戶下不能執(zhí)行psql,進(jìn)行如下配置:
(1)查看postgres用戶的psql對(duì)應(yīng)環(huán)境變量:
whereis psql
返回:psql: /usr/sbin/psql /usr/share/man/man1/psql.1
(2)將該路徑軟鏈接到剛安裝的psql實(shí)際存在的路徑/usr/pgsql-9.6/bin/psql
ln -s /usr/pgsql-9.6/bin/psql /usr/sbin/psql
2、創(chuàng)建db,user,并將所建db指定給指定user管理,賦權(quán)
CREATE USER postgr WITH PASSWORD 'postgr';
CREATE DATABASE dsgdb OWNER postgr;
GRANT ALL PRIVILEGES ON DATABASE dsgdb to postgr;
3、基本操作
對(duì)數(shù)據(jù)庫結(jié)構(gòu)、表結(jié)構(gòu)等的操作可以登陸數(shù)據(jù)庫后使用\?命令列出。下邊列出最基本的常用命令:
\l #列出當(dāng)前PostgreSQL中有哪些數(shù)據(jù)庫,擁有者、字符集、權(quán)限等;
\dn #列出當(dāng)前庫中所有schema;
\d #列出當(dāng)前數(shù)據(jù)庫中的表、視圖、序列;
\d tablename #查看指定表的表結(jié)構(gòu);
select current_database(); #查看當(dāng)前登陸的數(shù)據(jù)庫;
select * from current_user; #查看當(dāng)前登陸的用戶;
\c dbname username #切換登陸的數(shù)據(jù)庫、用戶;
3、使用指定用戶登錄指定庫:
#su - postgres
$psql -d dsgdb -U postgr #psql后邊-d參數(shù)指定db,-U參數(shù)指定登陸用戶,其他參數(shù)可psql --help查看
set search_path to dsg_test; #設(shè)置模式搜索路徑為某個(gè)schema;默認(rèn)是public;
set search_path to public; #模式搜索路徑切換回默認(rèn)的public;
分享標(biāo)題:PostgreSQLonLinux安裝部署及基本使用
文章鏈接:
http://weahome.cn/article/poghdo.html