我正在尝试使用第三方应用程序来运行数据库迁移。应用程序使用以下字符串启动连接(当前在开发人员模式下为无密码):
host=localhost port=5432 user=myuser dbname=desired_database sslmode=disable
尽管使用dbname参数,但用于迁移的数据最终存储在“ myuser”数据库中。
我以为这是软件的一个错误,直到我尝试按如下方式从外壳连接:
psql "host=localhost port=5432 user=myuser dbname=desired_database sslmode=disable"
这使我以与用户同名的身份进入数据库:
myuser=#
在psql shell中,我仍然可以连接到所需的数据库:
\c desired_database
You are now connected to database "desired_database" as user "myuser".
desired_database=#
此外,我可以直接从命令行进行如下连接:
psql -U myuser desired_database
desired_database=#
这可能是一条红线,但是我相信,如果我能解决命令行问题,那么我的软件问题将会得到解决。对于它的价值,我尝试使用超级用户进行连接以得到相同的结果。这是在通过Homebrew安装的使用PSQL 10.4的Macbook上。在我的Linux安装上,一切正常。我希望这是一个简单的配置问题。