Postgresql Psql连接字符串dbname参数显然不工作?

Postgresql Psql连接字符串dbname参数显然不工作?,postgresql,homebrew,psql,Postgresql,Homebrew,Psql,我正在尝试使用第三方应用程序来运行数据库迁移。应用程序使用以下字符串启动连接(当前在开发模式下为无密码): host=localhost-port=5432 user=myuser-dbname=desired\u数据库sslmode=disable 尽管使用了dbname参数,但用于迁移的数据最终会出现在“myuser”数据库中 我认为这是软件的一个bug,直到我尝试从shell连接,如下所示: psql“host=localhost-port=5432 user=myuser-dbname=

我正在尝试使用第三方应用程序来运行数据库迁移。应用程序使用以下字符串启动连接(当前在开发模式下为无密码):

host=localhost-port=5432 user=myuser-dbname=desired\u数据库sslmode=disable

尽管使用了dbname参数,但用于迁移的数据最终会出现在“myuser”数据库中

我认为这是软件的一个bug,直到我尝试从shell连接,如下所示:

psql“host=localhost-port=5432 user=myuser-dbname=desired\u数据库sslmode=disable”
这使我以与用户相同的名称进入数据库:

myuser=#
在psql shell中,我仍然能够连接到所需的数据库:

\c所需的\u数据库
您现在以用户“myuser”的身份连接到数据库“desired_database”。
所需数据库=#
此外,我可以直接从命令行进行连接,如下所示:

psql-U myuser所需的\U数据库
所需数据库=#

这可能是一个转移视线的问题,但我相信如果我能解决命令行问题,那么我的软件就会解决这个问题。值得一提的是,我尝试使用超级用户连接到相同的结果。这是在Macbook上使用通过自制安装的PSQL 10.4。在我的Linux安装中,一切正常。我希望这是一个简单的配置问题。

我确实做到了,在试图隔离问题的同时,使用上述名称创建了用户和数据库。我认为发生的情况是,库正在发送空密码,如下所示:“host=localhost port=5432 user=myuser password=dbname=desired\u database sslmode=disable”。我以前没有注意到这一点,所以它毕竟可以被认为是一个bug。我必须验证一下。如果您使用的是密码文件,而不是
trust
peer
身份验证,那么这是一个很好的猜测。查看PostgreSQL server日志以获取线索。