Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
psqlcmd命令指定密码(通过java应用程序)_Java_Postgresql_Cmd_Passwords_Psql - Fatal编程技术网

psqlcmd命令指定密码(通过java应用程序)

psqlcmd命令指定密码(通过java应用程序),java,postgresql,cmd,passwords,psql,Java,Postgresql,Cmd,Passwords,Psql,我可以在psql命令中包含密码吗 我的命令是: psql-h localhost-p 5432-U mee-d my_db-f sqltest.sql 因为我试图通过java应用程序运行它,但我不知道如何指定它 Process pro = Runtime.getRuntime().exec("psql -h localhost -p 5432 -U mee -d my_db -f sqltest.sql"); BufferedReader br = new BufferedReader(new

我可以在psql命令中包含密码吗

我的命令是:

psql-h localhost-p 5432-U mee-d my_db-f sqltest.sql

因为我试图通过java应用程序运行它,但我不知道如何指定它

Process pro = Runtime.getRuntime().exec("psql -h localhost -p 5432 -U mee -d my_db -f sqltest.sql");

BufferedReader br = new BufferedReader(new InputStreamReader(pro.getInputStream()));
String line;
while ((line = br.readLine()) != null)
      System.out.println("heeeeeeeeeeere : "+line);

您所能做的最多就是在
.pgpass
文件中保存您正在连接的用户的密码。这样,psql就不会要求输入密码。无法将密码作为参数传递给psql。

好的,您是否查看了密码?是的。我发现-W强制用户插入密码,但我没有真正理解-W的意思。我应该在pgpass文件中插入密码,这样我就不必在cmd中插入密码了吗?嗯,还不够彻底。有可能通过环境变量传递密码,或通过连接字符串(而不是数据库名称)传递密码,或者如答案所述,使用
.pgpass
。可以通过文档访问所有这些信息。如果不想将密码存储在应用程序之外,请执行以下操作:。例如:
psql-d'postgresql://mee:secretpassword@localhost:5432/my_db'-f sqltest.sql