Psql命令行密码和查询

3

我正在尝试制作一条单行的psql请求。我希望能够同时发送凭据和查询。我正在使用以下方式:

psql.exe "dbname=dbname user=postgres password=postgres host=localhost" -c 'select * from table'

实际上,如果我去掉-c选项,它可以正常工作,但现在它会给我发送这个错误信息:

psql: attention : option supplémentaire « 'select » ignorée
psql: attention : option supplémentaire « * » ignorée
psql: attention : option supplémentaire « from » ignorée
psql: attention : option supplémentaire « view' » ignorée

与数据库的连接已经建立,但是这些日志是用法语书写的,意思是“注意:选项被跳过”。

我尝试使用 URL 请求。

psql.exe postgresql://postgres:postgres@localhost/dbname -c 'select * from view'

但这是一样的。

你有任何想法,我在哪里出错了吗?

谢谢!


我正在使用最新版本的PostgreSQL:13! - Gabriel Morin
3个回答

4

好的,大家好,我找到了解决方案。在更好地阅读了 --help 后,我发现

psql [OPTIONS]... [NOM_BASE [NOM_UTILISATEUR]]

连接选项应该在查询后使用,而不是像这样使用 psql [CONNEXION] -c "blabla"

请使用以下方式:
psql -c "select * from table" "dbname=dbname user=user password=password host=host"

或者
psql -c "select * from table" postgresql://user:password@host/dbname

请注意您的双引号。

再见,


2
psql postgresql://myusername:myPassword@127.0.0.1:5432/myDB

0

在Windows的cmd.exe中,如果要保护一个包含空格的字符串,必须使用双引号而不是单引号。


同意。事实是,使用双引号,它会一次性跳过整个内容! - Gabriel Morin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接