我正在尝试从psql命令行外部连接到postgres数据库(所以在执行sudo -u postgres psql之前),但似乎我无法通过身份验证。我尝试运行从命令行连接到该数据库的脚本后出现错误:
error: password authentication failed for user "bobby"
“bobby”是我的操作系统用户名,我注意到postgres数据库包含一个名为postgres的超级用户,但
我是所有这些postgres的新手,所以我有点困惑为什么它试图使用我的操作系统用户名而不是我的psql用户名进行身份验证,或者更确切地说我将如何使用psql用户名进行身份验证比我的操作系统用户名,因为我知道他们是彼此分开的。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
您需要将系统用户名添加到posgres数据库
$ psql -d template1 -U postgres
template1=# CREATE USER bobby WITH PASSWORD 'myPassword'
template1=# CREATE DATABASE mydatabase
template1=# GRANT ALL PRIVILEGES ON DATABASE mydatabase to bobby
完成并退出
然后您可以使用
访问数据库bobby=#psql mydatabase