首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >psql:致命:数据库"<user>“不存在

psql:致命:数据库"<user>“不存在
EN

Stack Overflow用户
提问于 2013-07-13 19:18:24
回答 22查看 542.6K关注 0票数 947

我使用的是mac的PostgreSql应用程序(http://postgresapp.com/)。我过去曾在其他机器上使用过它,但在我的macbook上安装时,它给我带来了一些麻烦。我已经安装了应用程序,我运行了:

代码语言:javascript
复制
psql -h localhost

它返回:

代码语言:javascript
复制
psql: FATAL:  database "<user>" does not exist

似乎我甚至无法运行控制台来创建它试图找到的数据库。当我跑的时候也会发生同样的事情:

代码语言:javascript
复制
psql 

或者,如果我从应用程序下拉菜单启动psql:

机器统计:

  • OSX 10.8.4
  • psql (PostgreSQL) 9.2.4

任何帮助都是非常感谢的。

我也尝试通过自制的方式安装PostgreSql,我也遇到了同样的问题。我还阅读了应用程序文档页面,其中指出:

当Postgres.app第一次启动时,它会创建$USER数据库,这是psql的默认数据库,但没有指定任何数据库。默认用户是$USER,没有密码。

因此,应用程序似乎没有创建$USER,但是我已经安装了几次->卸载-重新安装了几次,所以它肯定是我的机器上的东西。

我找到了答案,但我不确定它到底是如何工作的,因为在这个线程上应答的用户-> 让Postgresql在Mac中运行:数据库"postgres“不存在没有跟进。我使用以下命令使psql打开:

代码语言:javascript
复制
psql -d template1

我不会回答这个问题,直到有人能给出解释为什么会这样做为止。

EN

回答 22

Stack Overflow用户

回答已采纳

发布于 2013-07-29 23:40:57

您的包管理器似乎未能为您创建名为$user的数据库。原因是

代码语言:javascript
复制
psql -d template1

template1是一个由postgres自己创建的数据库,它存在于所有安装中。显然,您能够登录到template1,因此您必须拥有由数据库分配给您的一些权限。在shell提示符下尝试如下:

代码语言:javascript
复制
createdb

然后看看是否可以再次登录

代码语言:javascript
复制
psql -h localhost

这将简单地为您的登录用户创建一个数据库,我认为这就是您要寻找的。如果createdb失败了,那么您就没有足够的权限创建您自己的数据库,您将不得不弄清楚如何修复自制的包。

票数 1.4K
EN

Stack Overflow用户

发布于 2014-02-17 11:10:31

默认情况下,postgres尝试连接到与用户同名的数据库。要防止这种默认行为,只需指定用户和数据库:

代码语言:javascript
复制
psql -U Username DatabaseName 
票数 226
EN

Stack Overflow用户

发布于 2014-11-03 19:52:46

  1. 以默认用户身份登录:sudo -i -u postgres
  2. 创建新用户:createuser --interactive
  3. 当提示输入角色名称时,输入linux,并选择Yes to superuser问句。
  4. 仍然以postgres用户身份登录,创建一个数据库:createdb <username_from_step_3>
  5. 通过在命令提示符处输入:psql,确认错误已经消失。
  6. 输出应该显示psql (x.x.x) Type "help" for help.
票数 81
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17633422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档