Helloの例からDigital Oceanを使用してフェニックスプロジェクトを作成しました。 etc/motd.tailファイルからユーザー名とパスワードを入力しました。以下のエラーメッセージが表示され続けます。私は初心者ですが、何らかの理由でectoを正しくインストールできません。
**(Mix)Hello.Repoのデータベースを作成できませんでした。理由:psql:FATAL:ユーザー "elixir"のパスワード認証に失敗しましたFATAL:ユーザー "elixir"のパスワード認証に失敗しました
次のPostgressデータベース認証情報を使用できます:*ユーザー:elixir *パス:***
インストール。任意の助けいただければ幸いです。
このエラーは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
にある可能性があります)。
Ubuntu 14.04を使用しても同じエラーが発生し、「postgres」パスワードのリセットを修正しました。
$ Sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
そしてpostgresサービスを再起動します:
Sudo service postgresql restart
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> ;
これを機能させるには、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でエリクサーユーザーを作成し、dev.exsで構成しました(ユーザー/パスワード/データベース)