我使用数字海洋从你好的例子中创建了一个凤凰项目。我输入了etc / motd.tail文件中的用户名和密码。我一直收到以下错误消息。我是初学者,由于某种原因,我无法正确安装。
**(混合)无法创建Hello.Repo数据库,原因如下:psql:FATAL:用户密码验证失败" elixir" 致命:用户" elixir"
的密码验证失败您可以使用以下Postgress数据库凭据: *用户:elixir *通过:***
安装。任何帮助,将不胜感激。
答案 0 :(得分:59)
我使用Ubuntu 14.04得到了同样的错误,我纠正了重置' postgres'密码:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
并重启postgres服务:
sudo service postgresql restart
答案 1 :(得分:7)
我认为这个错误发生在mix ecto.create
任务上?
这是因为Ecto使用psql
来创建数据库,但是在即将发布的Ecto 2.0中不再是这种情况。
以下GitHub问题显示了相同的问题https://github.com/elixir-lang/ecto/issues/1207
修正案的相关评论为https://github.com/elixir-lang/ecto/issues/1207#issuecomment-172570064:
我的数据库配置(pg_hba.conf)显然是错误的。
对于其他遇到此问题的人:
主机所有my_user 127.0.0.1/32信任将无效 托管所有my_user localhost信任将起作用
请检查您的pg_hba.conf
(可能在/etc/postsgresql/9.x/pg_hba.conf
)。
答案 2 :(得分:1)
我们只需要使用this db method
根据username
文件夹中的文件创建新的postgresql password
和config
$ sudo -u postgres createuser <username>
$ sudo -u postgres createdb <dbname>
$ sudo -u postgres psql
psql=# alter user <username> with encrypted password '<password>';
psql=# grant all privileges on database <dbname> to <username> ;
答案 3 :(得分:0)
我需要更新pg_hba.conf以使其正常工作。
我正在使用Fedora,所以请到/ var / lib / pgsql / data
# "local" is for Unix domain socket connections only
local all postgres peer
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 ident
然后我在postgres中创建了一个具有数据库创建功能的elixir用户,并在dev.exs(用户/密码/数据库)中配置它