PostgreSQLonLinux安装部署及基本使用

                                       ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
                                       ◆◆◆◆◆◆◆◆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;  

标题名称:PostgreSQLonLinux安装部署及基本使用
本文URL:http://myzitong.com/article/poghdo.html