深度linux安装postgresql_PostgreSQL on Linux安装部署及基本使用

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

◆◆◆◆◆◆◆◆PostgreSQL安装部署◆◆◆◆◆◆◆◆

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

前言:项目中使用到了PostgreSQL,目前只涉及安装部署,及基本使用,通过几天的学习,对PG有个初步了解,做此整理。

环境:PostgreSQL 9.6+Redhat 6.3

一、安装数据库

1、删除系统中旧版本PostgreSQL

(1)查看现有版本:

rpm -qa | grep postgres

(2)检查pg服务,停服务

查看服务:service postgresql-9.4 status

停:service postgresql-9.4 stop

查看进程:ps -ef | grep postgres

停:kill -9 12345

(3)删除现有版本

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平台9.6版本下载链接,如需下载其他版本,将9.6改为其它版本即可。如9.3:https://yum.postgresql.org/9.3  然后选择平台

(1)基础安装,需要下载四个介质:

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)扩展安装,两个介质:

postgresql96-contrib-9.6.2-2PGDG.rhel6.x86_64.rpm

postgresql96-devel-9.6.2-2PGDG.rhel6.x86_64.rpm

3、安装PostgreSQL

(1)基础包按照如下顺序安装:

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)扩展:

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可能缺少系统依赖包openssl,或需要升级如本次安装server时报错: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安装后,即可继续安装server。

根据提示的具体版本下载安装即可。

4、将初始化数据指定到自定义路径

PostgreSQL默认将数据文件等配置文件初始化到/var/lib/pgsql/9.6/data,实际应用中,我们希望将其放置到自定义的路径下(单独挂载的文件系统),这就需要初始化数据前,将路径指定到自定义路径

修改postgres用户.bash_profile中$PGDATA变量到自定义路径。

注意:这个自定义路径要有postgres:postgres权限,注意赋权。

5、初始化数据库(初始化过程会建Postgres主库,无主库则PostgreSQL无法启动)

service postgresql-9.6 initdb

6、启动数据库

service postgresql-9.6 start

二、使用数据库

0、简介postgreSQL数据库结构,以便有清晰的管理思路。

(1)postgreSQL对象层次:服务器、数据库、模式、表或其他类型对象。而用户与schema清晰分离开了。创建user与创建schema完全不相关。创建user后,赋予其指定数据库/schema的权限,即可访问对应db和shema。

而创建schma是在某个db下进行,创建后,可在schema下创建表等对象,用户对其有对应权限才可以对其做对应操作。

安装postgresql后,启动PostgreSQL服务,进入默认的postgres用户。

1、使用postgres用户(超级用户,类似oracle的sysdba)登录数据库:

#su - postgres                ####postgres系统用户即为默认的postgreSQL操作用户,类似oracle的oracle用户。

$psql                         ####进入postgres用户后执行psql即可登录到pg中,这样默认是登录到:postgres用户  postgres库;类似oracle的sqlplus / as sysdba

注意:安装后,psql可执行程序在/usr/pgsql-9.6/bin/psql,如果postgres用户下不能执行psql,进行如下配置:

(1)查看postgres用户的psql对应环境变量:

whereis psql

返回:psql: /usr/sbin/psql /usr/share/man/man1/psql.1

(2)将该路径软链接到刚安装的psql实际存在的路径/usr/pgsql-9.6/bin/psql

ln -s /usr/pgsql-9.6/bin/psql /usr/sbin/psql

2、创建db,user,并将所建db指定给指定user管理,赋权

CREATE USER postgr WITH PASSWORD 'postgr';

CREATE DATABASE dsgdb OWNER postgr;

GRANT ALL PRIVILEGES ON DATABASE dsgdb to postgr;

3、基本操作

对数据库结构、表结构等的操作可以登陆数据库后使用\?命令列出。下边列出最基本的常用命令:

\l                                    #列出当前PostgreSQL中有哪些数据库,拥有者、字符集、权限等;

\dn                                   #列出当前库中所有schema;

\d                                    #列出当前数据库中的表、视图、序列;

\d tablename                          #查看指定表的表结构;

select current_database();            #查看当前登陆的数据库;

select * from current_user;           #查看当前登陆的用户;

\c dbname username                    #切换登陆的数据库、用户;

3、使用指定用户登录指定库:

#su - postgres

$psql -d dsgdb -U postgr            #psql后边-d参数指定db,-U参数指定登陆用户,其他参数可psql --help查看

set search_path to dsg_test;       #设置模式搜索路径为某个schema;默认是public;

set search_path to public;         #模式搜索路径切换回默认的public;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29288115/viewspace-2137189/,如需转载,请注明出处,否则将追究法律责任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值