我在Mac上运行的是PostgreSQL14,由于忘记了密码,我试图重新安装它.

(base) % brew uninstall --force postgresql@14
(base) % brew cleanup -s              
(base) % brew install postgresql@14 

我按照上面的命令卸载了它以及它的缓存或文件,然后成功地再次安装了它.

我try 设置新密码,但遇到错误

(base) % psql -h localhost  

Psql:错误:连接到位于"localhost"(::1)的服务器,端口5432失败:致命:数据库"xxx"不存在.

我猜这个数据库xxx一定是在上次安装时设置的,我以为brew uninstall --force会删除所有以前的安装,但显然没有.

现在我该怎么解决这个问题呢?

推荐答案

如果默认值不能正常工作,请覆盖它们:

psql -h localhost -d postgres -U xxx -p 5432 -W
  • -d指定要连接到的数据库
  • -U指定要以哪个数据库用户身份进行连接
  • -p指定端口
  • -W指定希望提示您输入密码

这一点:

psql -h localhost

应默认为

psql -h localhost -d your_user_name

如果未指定-d parameter,则数据库默认为以您运行命令的用户命名的数据库:

默认数据库用户名是您的操作系统用户名.一旦确定了数据库用户名,就将其用作默认数据库名称.

如果它以某种方式自动try 连接到DB xxx,您可能仍然有environment variables在原地:

当缺省值不太正确时,您可以通过将环境变量PGDATABASE, PGHOST, PGPORT and/or PGUSER设置为适当的值来节省一些输入.

或用户目录中的.pgpass配置文件:

localhost:5432:xxx:username:password

或者,您只是使用名为xxx的用户.这将产生-d xxx个结果.请注意,它首先try 进行身份验证,然后才会告诉您数据库是否存在,这意味着您的用户xxx确实存在于该实例/集群上,您确实正确地进行了身份验证,但之后它试图欢迎您加入一个并不存在的数据库xxx.


如果您忘记了本地Postgres数据库的密码,则无需重新安装-您可以将给定数据库/用户的本地连接设置为在pg_hba.conf中受信任,连接,设置密码,然后锁定pg_hba.conf.也可以切换到系统用户postgres并try 使用基于套接字的身份验证,这在默认情况下是允许的.

Postgresql相关问答推荐

跟踪状态更改为特定值的日期

PostgreSQL:如何 for each 唯一的客户输入/更新列中的数据,并将其递增1直到表的末尾

为什么在PostgreSQL中CPU_INDEX_TUPLE_COST与CPU_TUPLE_COST不同

如何诊断字符编码问题

在Postgres游标中从一行变量中减go 另一行变量

Postgres数据库系统已准备好接受连接和docker compose

需要用 jack/pgx 更新 golang 中复合类型的 PSQL 行

gorm 创建并返回值 many2many

在 KnexJS 中插入

PostgreSQL ORDER BY 问题 - 自然排序

Rails 3:在 Postgres 支持的 ActiveRecord 中使用 json 作为列类型时出现迁移错误

在函数中返回字段作为插入结果

如何将1 天 01:30:00等间隔转换为25:30:00?

Psycopg2 使用占位符插入表格

django.db.utils.IntegrityError:duplicate key value violates unique constraint "django_content_type_pkey"

Postgres 中是否有 MAX_INT 常量?

如何在 postgresql 交叉表中用零替换空值

Postgres 中有多少表分区太多了?

如何在 JPA 中使用 Postgres JSONB 数据类型?

性能调优:为布尔列创建索引