【问题标题】:Running mix ecto.create command for creating a database in a Phoenix project with a postgresql instaled by brew运行 mix ecto.create 命令以在 Phoenix 项目中使用 brew 安装的 postgresql 创建数据库
【发布时间】:2020-06-12 03:32:00
【问题描述】:

我已经使用包管理器 (brew) 安装了 postgres。在后台启动服务并运行它以在 Phoenix 上创建数据库后,出现此错误:

dedeco@MacBook-Pro-Dedeco> mix ecto.create                                                                                            

23:57:56.112 [error] GenServer #PID<0.242.0> terminating
** (Postgrex.Error) FATAL 28000 (invalid_authorization_specification) role "postgres" does not exist
    (db_connection) lib/db_connection/connection.ex:87: DBConnection.Connection.connect/2
    (connection) lib/connection.ex:622: Connection.enter_connect/5
    (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3
Last message: nil
State: Postgrex.Protocol
** (Mix) The database for Hello.Repo couldn't be created: killed

【问题讨论】:

    标签: macos elixir phoenix-framework elixir-mix


    【解决方案1】:

    如果您使用自制软件安装 Postgres,它可能是使用您的操作系统 (OS) USER 创建的 SUPERUSER,就像您的名字一样。

    所以你需要一个 postgres 用户,你必须使用这些命令创建:

    dedeco@MacBook-Pro-Dedeco> psql postgres                                                                                                              
    psql (12.2)
    Type "help" for help.
    
    postgres=# \du
                                       List of roles
     Role name |                         Attributes                         | Member of
    -----------+------------------------------------------------------------+-----------
     dedeco    | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
    
    postgres=# CREATE USER postgres SUPERUSER;
    CREATE ROLE
    postgres=#
    

    另一种选择是将 postgres 用户更改为文件 config/dev.exs(或 prod.exs,这取决于您是哪个环境),如下所示:

    # Configure your database
    config :hello, Hello.Repo,
      username: "<USER_NAME>",
      password: "<PASSWORD>",
      database: "hello_dev",
      hostname: "localhost",
      show_sensitive_data_on_connection_error: true,
      pool_size: 10
    

    【讨论】:

      猜你喜欢
      • 2018-10-24
      • 1970-01-01
      • 2018-04-12
      • 2017-03-05
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多