zoukankan      html  css  js  c++  java
  • export不输入密码执行psql

    备份:
        set PGPASSWORD=密码

        set PGCLIENTENCODING=UTF8
        pg_dumpall -U postgres > backup_file

    恢复:
        set PGPASSWORD=密码
        set PGCLIENTENCODING=UTF8
        psql -U postgres < backup_file



    升级(当然要把以前的数据迁移到新系统):

    目前我在Windows XP上用的PostgreSQL的版本是8.1,既然有新版本8.3.4出来了,就想升级到这个版本。

    一般小版本升级,如把8.3.1升级到8.3.4,只需要升级程序就可用,原来的数据仍然可用。可是如果把8.1升级到8.3.x就要

    用pg_dump或pg_dumpall和psql或pg_restore命令了。

    如果能两个系统同时存在,可以用命令:

        pg_dumpall -p 5432 | psql -d template1 -p 6543

    我在使用时,提示Administrator密码不对,于是使用命令

        pg_dumpall -U postgres -p 5432 | psql -U postgres -p 6543

    **如果有多个数据库要迁移,就要输入多次密码,比较烦。


    Linux下先执行下面命令:
    export PGPASSWORD=密码
    要用密码文件的话先执行下面命令:
    export PGPASSFILE=/文件路径/.pgpass

    同样,在Windows下也是先执行下面命令:
    set PGPASSWORD=密码
    或使用密码文件,先执行下面命令:
    set PGPASSFILE=/文件路径/.pgpass

    再执行pg_dump、pg_dumpall等命令就不会提示要密码了。


    windows下pgpass.conf在C:\Documents and Settings\username\Application Data\postgresql\pgpass.conf


    **另外,可能在中文下出现编码问题,Linux下先执行下面命令:
    export PGCLIENTENCODING=UTF8
    再执行pg_dumpall等命令,就没事了。
    在windows下,先执行的命令是:
    set PGCLIENTENCODING=UTF8


    PostgreSQL自带的帮助文档“PostgreSQL Help”上有更详细的备份、恢复、升级等信息。

    下面内容摘自PostgreSQL文档:

    28.12. 口令文件

    用户家目录中的 .pgpass 或者 PGPASSFILE 引用的文件是一个可以包含口令的文件。如果连接要求口令(并且没有用其它方法声明口令),那么可以用它。在 Microsoft Windows 上,文件名字是 %APPDATA%\postgresql\pgpass.conf (这里的 %APPDATA% 指用户配置里的 Application Data 子目录)。

    这个文件应该有下面这样的格式行:

    hostname:port:database:username:password

    头四个字段每个都可以是一个文本值,或者 *,它匹配所有的东西。第一个匹配当前连接参数的口令行的口令域将得以使用。(因此,如果你使用了通配符,那么应该把最具体的记录放在前面。)如果记录包含 : 或者 \ ,应该用 \ 逃逸。一个 localhost 的主机名匹配来自本机的 host(TCP)和 local (Unix 域套接字)。

    .pgpass 的权限必须不允许任何全局或者同组的用户访问;我们可以用命令 chmod 0600 ~/.pgpass 实现这个目的。如果权限比这个松,这个文件将被忽略。(不过目前在 Microsoft Windows 上没有检查这个文件的权限。)

    本文出自 “GONE WITH THE WIND” 博客,请务必保留此出处http://h2appy.blog.51cto.com/609721/795614   特别感谢

  • 相关阅读:
    MYSQL数据库导入数据时出现乱码的解决办法
    Java Web(一) Servlet详解!!
    hibernate(九) 二级缓存和事务级别详讲
    MySQL(五) MySQL中的索引详讲
    LinkedHashMap源码详解
    hibernate(八) Hibernate检索策略(类级别,关联级别,批量检索)详解
    hibernate(七) hibernate中查询方式详解
    MySQL(四) 数据表的插入、更新、删除数据
    MySQL(三) 数据库表的查询操作【重要】
    MySQL(二) 数据库数据类型详解
  • 原文地址:https://www.cnblogs.com/2zhyi/p/2730021.html
Copyright © 2011-2022 走看看