我想使用PostgreSQL数据库进行备份。 我已尝试使用以下代码,但我得到了:
错误pg_dump:命令行参数太多(首先是“postgres”)尝试“pg_dump --help”获取更多信息。
Runtime r = Runtime.getRuntime();
Process p;
ProcessBuilder pb;
r = Runtime.getRuntime();
pb = new ProcessBuilder(
"/usr/pgsql-9.3/bin/pg_dump",
"--host", "localhost",
"--port", "5432",
"--username", "postgres",
"--dbname", "postfixdb",
"--role", "postgres",
"--password"," postgres",
"--verbose",
"/usr/pg_dump.backup");
pb.redirectErrorStream(true);
p = pb.start();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String ll;
while ((ll = br.readLine()) != null) { System.out.println(ll); }
答案 0 :(得分:1)
请参阅the psql
documentation了解调用语法和允许选项列表。
首先尝试在命令行上运行它,只有在成功时才尝试从Java运行它。
明显错误列表:
“用户”的选项为-U
(大写)。
-p
用于TCP端口号。
没有-B
选项。
没有-r
选项。