postgresql - Phoenix 和 Postgres 安装 - 不说话

标签 postgresql elixir phoenix-framework

我的操作系统是 Fedora 26

我已经安装了 Postgresql 和 Phoenix。

Postgres 有一个 super 用户“postgres”,密码是“postgres”。这可以通过在 psql 中运行\du 来确认。

当我运行 $ mix ecto.create 时,我得到了

** (Mix) The database for Hello.Repo couldn't be created: FATAL 28000 (invalid_authorization_specification): Ident authentication failed for user "postgres"

我怀疑这可能是权限问题。登录 psql 需要

$ sudo -u postgres psql postgres

而 Phoenix 在尝试使用 postgres 时可能没有 sudo 权限。

$ psql --version
psql (PostgreSQL) 9.6.8

任何想法表示赞赏。

最佳答案

默认情况下,本地连接到DB的postgres数据库用户的身份验证是验证操作系统用户是否也是postgres。这就是错误消息所指的身份验证,也是执行 sudo -u postgres 后连接有效的原因。

要使用其他身份验证方式作为 postgres 用户连接,您需要编辑 pg_hba.conf 文件。 (HBA 代表基于主机的身份验证)。

允许这样做的行将如下所示:

local   all             postgres                                peer

添加一行看起来像这样(不删除另一行!):

local   all             postgres                                md5

而且您也应该能够使用 postgres 的密码进行连接。

如果我没记错的话,您需要重启数据库才能生效。

关于postgresql - Phoenix 和 Postgres 安装 - 不说话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50143707/

相关文章:

mysql - 在 rails 中从 mysql 迁移到 postgresql

elixir - 在测试过程中丢失 conn.assigns

elixir - Phoenix Framework (Elixir) - 将 JS 文件加载到 Assets 管道中

elixir - 从 Phoenix router.ex 返回响应,无需 Controller

ruby-on-rails - heroku 运行 rake db :migrate error

sql - 无法将 JOIN 中的不匹配行计为 NULL

sql - 如何计算 postgresql 中 JSON 的 setof/键数?

ubuntu - 无法运行 Phoenix 服务器。找不到 erlang/lib/parsetools-2.1.8

ssl - Phoenix 找不到 SSL key ,即使它存在于该位置

elixir - 在 Elixir 中部署时更改后端/模块?