【问题标题】:Postgresql Backup and restore using java with passwordPostgresql 使用带有密码的 java 进行备份和恢复
【发布时间】:2016-03-12 19:57:47
【问题描述】:

我想使用 pg_dump 备份和恢复一个 postgresql 数据库。 问题是: 当我执行此命令时在命令行中:

pg_dump -h localhost -p 5432 -U postgres  -F t -f test2.tar  myDatabase

我收到此提示消息以提供数据库密码:

 Mot de passe :

原来如此

但是,在 java 的上下文中: 我只能这样做:

 String cmd = "pg_dump -U postgres -h localhost -p 5342";
                cmd += " -F t -f " + file.getCanonicalPath();
                cmd += " myDatabase";
                Process p = Runtime.getRuntime().exec(cmd);
                int result= p.waitFor();

if (result == 0) {
                    System.out.println("Backup created successfully");
                } else {
                    System.out.println("There is an error");
                }

上面的代码不起作用。那么,我可以做些什么来在运行时提供数据库密码呢?

【问题讨论】:

    标签: java postgresql backup restore


    【解决方案1】:

    来自关于 pg_dump 的 PostgreSQL 文档:

    -w

    --无密码

    永远不要发出密码提示。如果服务器需要密码验证并且密码不能通过其他方式(例如 .pgpass 文件)获得,则连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中很有用。

    那么您能否尝试在您的pg_dumpcommand 上传递-w 选项并提供带有密码的.pgpass file

    【讨论】:

      猜你喜欢
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      相关资源
      最近更新 更多