• PostgreSQL初识,编译安装


    个人学习笔记,谢绝转载!!!
    原文:https://www.cnblogs.com/wshenjin/p/12942435.html


    编译安装

    root@ ~]# yum install readline-devel
    root@ ~]# wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz
    root@ ~]# tar xf postgresql-11.4.tar.gz 
    root@ ~]# cd postgresql-11.4
    root@ postgresql-11.4]# ./configure --prefix=/usr/local/postgresql
    root@ postgresql-11.4]# make && make install 
    

    新增postgresql用户并使用该账号操作

    root@ ~]# useradd -s /sbin/nolog postgresql
    root@ ~]# ln -sv /usr/local/postgresql/bin /home/postgresql/ 
    root@ ~]# su - -s /bin/bash postgresql
    postgresql$ mkdir /data/database/postgresql
    

    初始化:

    postgresql$ bin/initdb -D /data/database/postgresql/
    postgresql$ bin/pg_ctl init -D /data/database/postgresql/  #或者
    

    目录文件说明:

    • base目录 表空间目录
    • global目录 相关全局变量目录
    • pg_hba.conf 访问控制配置文件
    • postgresql.conf postgresql主配置文件

    postgresql.conf 配置:

    listen_addresses = '*'
    port = 5432
    max_connections = 1024
    unix_socket_directories = '/tmp' 
    

    启动:

    postgresql$ bin/pg_ctl -D /data/database/postgresql/ -l /data/database/postgresql/postgresql.log start
    

    关闭

    postgresql$ bin/pg_ctl -D /data/database/postgresql/ stop
    

    创建初始数据库,并用超级用户登录

    postgresql$ bin/psql
    psql: FATAL:  database "postgresql" does not exist
    postgresql$ bin/createdb postgresql
    postgresql$ bin/psql
    psql (11.4)
    Type "help" for help.
    
    postgresql=# alter role postgresql with password '123456';
    

    ps 初始化数据库时,会建立一个和初始化用户名的同名超级用户,在这个用户登录时执行的是操作系统认证,所以不需要用户名和密码,如也需密码认证,可修改文件pg_hba.conf。

    配置访问控制pg_hba.conf,并reload:

    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    local   all        postgresql                                   trust
    host    all        postgresql           127.0.0.1/32            md5   
    
      说明:
        TYPE:     连接方式,local:本地unix套接字,host:tcp/ip连接
        DATABASE: 数据库
        USER:     数据库用户
        ADDRESS:  ip地址,可以定义某台主机或某个网段,32代表检查整个ip地址,相当于固定的ip,24代表只检查前三位,最后一位是0~255之间的任何一个
        METHOD:   认证方式,常用的有ident,md5,password,trust,reject。
                          md5是常用的密码认证方式。
                          password是以明文密码传送给数据库,建议不要在生产环境中使用。
                          trust是只要知道数据库用户名就能登录,建议不要在生产环境中使用。
                          reject是拒绝认证。
    postgresql$ bin/pg_ctl -D /data/database/postgresql/ reload
    

    添加一个root超级用户,和pguser普通用户

    #访问控制
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    local   all        postgresql,root                              trust
    host    all        postgresql,root      127.0.0.1/32            md5   
    local   pgdb       pguser                                       md5
    host    pgdb       pguser               127.0.0.1/32            md5
                                                                                                                                          
    postgresql$ bin/pg_ctl -D /data/database/postgresql/ reload
    server signaled
    postgresql$ bin/createdb root
    postgresql$ bin/createuser --superuser -P root
    Enter password for new role: ***
    Enter it again: ***
    [postgresql@localhost ~]$ bin/psql -U root 
    psql (11.4)
    Type "help" for help.
    
    root=# q
    [postgresql@localhost ~]$ bin/psql -U root -h 127.0.0.1
    Password for user root: 
    psql (11.4)
    Type "help" for help.
    
    root=# create user pguser with password '1111';        
    CREATE ROLE
    root=# create database pgdb  owner pguser;       
    CREATE DATABAS
    

    使用普通用户登陆pgdb库:

    [root@ ~]# psql -U pguser  pgdb
    Password for user pguser: 1111
    psql (11.4)
    Type "help" for help.
    
    pgdb=> q
    

    常用内部命令:

    • password 设置密码
    • q 退出
    • h:查看SQL命令的解释,比如h select。
    • ?:查看psql命令列表。
    • l:列出所有数据库。
    • c [database_name]:连接其他数据库。
    • d:列出当前数据库的所有表格。
    • d [table_name]:列出某一张表格的结构。
    • du:列出所有用户。
    • e:打开文本编辑器。
    • conninfo:列出当前数据库和连接的信息。
  • 相关阅读:
    MBR:How It Works Master Boot Record
    查看系统信息命令:uname
    随笔:Highcharts学习笔记
    关于邮箱模板样式设计的一些思考
    Android学习笔记之环境搭建
    [转]简要分析Ogre渲染队列的实现原理(一)
    [转]Improving link time with IncrediBuild,减少联合编译器的链接是时间
    [转]目前游戏行业内部主要几款游戏引擎的技术对比
    [转]行程编码(Run Length Encoding)和算术编码
    [转]简要分析Ogre的渲染队列实现原理(二)
  • 原文地址:https://www.cnblogs.com/wshenjin/p/12942435.html
Copyright © 2020-2023  润新知