【问题标题】:Unable to mix ecto.create. Multiple errors无法混合 ecto.create。多个错误
【发布时间】:2016-12-23 21:51:41
【问题描述】:

尝试运行mix ecto.create 时出现以下错误:

  1. .Repo couldn't be created: tcp connect: connection refused - :econnrefused
  2. .Repo couldn't be created: FATAL (invalid_authorization_specification): role "postgres" does not exist
  3. .Repo couldn't be created: FATAL (invalid_authorization_specification): role "postgres" is not permitted to log in

Postgres 必须满足哪些条件才能正确设置 Phoenix?

【问题讨论】:

    标签: postgresql elixir phoenix-framework ecto elixir-mix


    【解决方案1】:

    为了运行mix ecto.create,您需要一系列条件:

    1. Postgres 必须启动并运行。

    2. Postgres 必须有一个用户 postgres,密码为 postgres

    3. postgres 用户必须同时拥有 LOGINCREATEDB 的权限。

    例如,我在本地运行 Postgres,但缺少 postgres 用户。

    所以在PSQL 内我不得不使用以下命令:

    # CREATE ROLE postgres LOGIN CREATEDB PASSWORD 'postgres';
    

    然后它起作用了。

    Wendy Smoak致敬。

    【讨论】:

      【解决方案2】:
      1. 启动您的 postgres:(假设您使用的是 mac)

        pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log 开始

      然后,您可以在 cofig/dev.exs 中更改底部的数据库配置,以使用您的具有角色的帐户来创建数据库。

      【讨论】:

      • 不错!另一种方法:)虽然问题中的错误消息特别提到了postgres角色
      猜你喜欢
      • 2016-12-24
      • 1970-01-01
      • 2016-05-17
      • 2017-11-05
      • 1970-01-01
      • 2021-12-07
      • 2023-03-03
      • 2013-10-30
      • 1970-01-01
      相关资源
      最近更新 更多