zoukankan      html  css  js  c++  java
  • postgresql 维护手册

    1 安装:
    ./configure
    gmake
    su
    gmake install
    adduser postgres
    mkdir /usr/local/pgsql/data
    chown postgres /usr/local/pgsql/data
    su - postgres

    2 ## 初始化系统数据库。
    /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

    3 .## 启动数据库。
    su - postgres
    /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & ==/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

    /usr/local/pgsql/bin/createdb test   // 创建test 数据库/。
    /usr/local/pgsql/bin/psql test          // 连入test 数据库。

    4 . 察看当前连入的用户和使用的数据库 :
     liuxgdb-> c
     You are now connected to database "postgres" as user "postgres".

    5 . 切换到其它数据库:
       postgres=# c liuxgdb;
       You are now connected to database "liuxgdb".


    6. 最常用命令:show all   or  show  parname; 
    如: show port   显示服务器的端口;
           show  server_encoding   显示服务器的字符集。
     
           show  client_encoding   显示客户段字符集的编码。
           show  data_directory     显示数据库的工作目录,数据库存放的位置。
           show  listen_addresses   显示监听的地址。
           show   log_filename     postgresql-%Y-%m-%d_%H%M%S.log        | Sets the file name pattern for log files
           show   max_connections  Set the maximum number of concurrent connections
          

    7 . postgrel 数据库的位置: /usr/local/pgsql/data


    8 .查询有哪些数据库:

    察看当前数据库下有哪些表:
                        d{t|i|s|v|S} [PATTERN] (add "+" for more detail)
                                                            list tables/indexes/sequences/views/system tables


    9 .创建表: create table liuxg(id int,name char(40));

    10 .创建用户:
     创建一个可以登录的角色,但是不用给他口令:

     CREATE ROLE jonathan LOGIN;
     创建一个带口令的角色:

     CREATE USER davide WITH PASSWORD 'jw8s0F4';(CREATE USER 和 CREATE ROLE 一样,只不过它隐含 LOGIN。)

     创建一个带口令的角色,口令有效期到 2004 年底。在 2005 年跑了一秒之后, 口令就不再有效。

     CREATE ROLE miriam WITH LOGIN PASSWORD 'jw8s0F4' VALID UNTIL '2005-01-01';
    11 .创建一个可以创建数据库和管理角色的角色:

    CREATE ROLE admin WITH CREATEDB CREATEROLE;


    12 。删除用户:    drop user davide;

    13 。日志文件:

    配置文件: /usr/local/pgsql/data/postgresql.conf

    数据库启动方法:  /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

    数据库关闭方法:

    14 。 几个常用的察看命令。
    template1=# l   查看系统中现存的数据库

    template1=# q   退出客户端程序psql

    template1=# c   从一个数据库中转到另一个数据库中,如template1=# c sales 从template1转到sales

    template1=# d   查看表

    template1=# d test  查看test表结构

    template1=# d i  查看索引


    15.备份数据库

    可以使用pg_dump和pg_dumpall来完成。比如备份sales数据库:


    /usr/local/pgsql/bin/pg_dump  liuxgdb >/tmp/liuxgdb.bak  // 这事一个文本文件,包含了表结构和数据,还有权限等信息。

    16 . 还原数据库。
    createdb dbname                        // 需要先创建目标库, 恢复本身不能创建库,可察看备份文本。
    psql dbname </tmp/liuxgdb.bak   // 这样才可恢复成功。
    psql  newdb</var/lib/pgsql/createobjects.sql

    18 。日常维护:
       1备份

       2 "vacuuming" (清理)数据库。
      恢复那些由已更新的或已删除的行占据的磁盘空间.

      更新 PostgreSQL 查询规划器使用的数据统计信息.

      避免因为事务 ID 重叠造成的老旧数据的丢失

        3  日志文件的管理 

    19 。du   显示帐号信息。


    20。 企业邮箱中数据库的导入方法,学习一下。
      chkconfig --add postgresql
      chkconfig postgresql on
      service postgresql start
      echo "initing database for mail system........................................."
      #su postgres -c initdb
      echo "create db for webmail application........................................"
      su posn
      cp -rf ./sql/pgsql/createobjects.sql /var/lib/pgsql
      cp -rf ./sql/pgsql/initdata.sql /var/lib/pgsql
      su - postgres -c 'psql -d webmail_database -f createobjects.sql'
      su - postgres -c 'psql -d webmail_database -f initdata.sql'
      echo "database init complete."
    fi

    21。连接数据库的方法,这个地方可以放严格,放到有哪些用户通过哪些IP联入到数据库。
    psql -hlocalhost -Udavide -dnewdb   连接ok ;

    psql -h192.168.0.190 -Udavide -dnewdb
    psql: FATAL:  no pg_hba.conf entry for host "192.168.0.190", user "davide", database "newdb", SSL off
    方法:修改pg_hba.conf   增加:
    # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
    # IPv4 local connections:
    host    all         all         127.0.0.1/32          md5
    host    all         all         192.168.0.190/32   md5  
    host    newdb    all         192.168.0.253/32      md5
    上面只允许127.0.0.1 和192.168.0.190 这个IP联入数据库。

    修改postgresql 启动的监听
    vi /var/lib/pgsql/data/postgresql.conf   
    listen_addresses = '*'    // 监听所有端口。
    tcp        0      0 :::5432                     :::*                        LISTEN     


    察看一个用户的权限。du

                                  List of roles
     Role name | Superuser | Create role | Create DB | Connections | Member of
    -----------+-----------+-------------+-----------+-------------+-----------
     davide    | no        | no          | no        | no limit    |
     dovecot   | no        | no          | no        | no limit    |
      postgres  | yes       | yes         | yes       | no limit    |

      虽然davide 帐号没有创建数据库,创建用户的权限,但是他却有创建表和修改表的权限。

      创建一个比较大的权限的用户
      postgres=# CREATE ROLE admin WITH CREATEDB CREATEROLE;
       Role name | Superuser | Create role | Create DB | Connections | Member of
      -----------+-----------+-------------+-----------+-------------+-----------
       admin     | no        | yes         | yes       | no limit    |

    默认postgre 用户的密码是什么?

    修改webmail 帐号能操作其他用户的表。


    帮助文档:
    http://man.ddvip.com/database/PostgreSQL80zhref/index.html

  • 相关阅读:
    Ubuntu-18.04设置花生壳内网穿透
    Ubuntu开启SSH
    Ubuntu查看版本信息
    Linux之使用mount挂载ISO镜像
    druid参数配置说明
    [转]Java多线程学习(吐血超详细总结)
    eclipse 更改官方配色
    Spring AOP拦截对Controller的请求时的配置失败
    Spring Security3详细配置
    “java.lang.IllegalArgumentException: Failed to evaluate expression ‘ROLE_USER’”报错的解决
  • 原文地址:https://www.cnblogs.com/neights/p/2961507.html
Copyright © 2011-2022 走看看