【问题标题】:Error when trying to create database - Ecto - Phoenix尝试创建数据库时出错 - Ecto - Phoenix
【发布时间】:2016-11-21 18:04:22
【问题描述】:

我在尝试创建数据库时遇到错误。我已经安装了 postgres,并且已经成功完成了一些测试项目。而且,我还没有看到这个错误。任何帮助都会很棒:

错误:

 ~/Desktop/elixir/restore $ mix ecto.create
** (Mix) The database for Restore.Repo couldn't be created: tcp connect: connection refused - :econnrefused

21:52:23.978 [error] GenServer #PID<0.150.0> terminating
** (Postgrex.Error) tcp connect: connection refused - :econnrefused
    (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2
    (connection) lib/connection.ex:623: Connection.enter_connect/5
    (stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: nil
State: Postgrex.Protocol

【问题讨论】:

  • 你用的是什么ecto版本?
  • postgresql 运行了吗?
  • 通过堆栈溢出调试 postgres 会很困难,因为它通常与您的特定设置有关。您确实需要弄清楚两件事,postgres 是否正在运行,以及您的凭据是什么,有时可能取决于您安装 postgres 的方式。弄清楚这两个后,将正确的凭据放入 phoenix 配置中,然后重试。
  • 如果你的默认用户postgres很常见,你可以从终端运行psql --username=postgres。如果它连接了,那么你已经运行了 postgres 并且知道你的信誉。如果没有,那么有一个很好的起点。

标签: postgresql elixir phoenix-framework ecto


【解决方案1】:

我今天在尝试运行mix ecto.create 时遇到了同样的问题。 所以首先确保你有postgres。推荐使用brew安装。

brew 安装 postgres

使用 brew services 来启动/停止 postgresql,

创建一个数据库,

创建 postgres 超级用户,

您可能需要授予文件夹权限。

这些链接对我很有用:

psql: FATAL: role "postgres" does not exist

psql: FATAL: database "<user>" does not exist

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,问题是 postgres 没有运行。

    所以,要检查这个,你应该运行:

    brew services list
    

    然后,如果你看到:

    Name Status User Plist postgresql stopped
    

    你应该运行:

    brew services start postgresql
    

    干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 2012-03-01
      • 2017-11-02
      相关资源
      最近更新 更多