我正在努力学习GraphQL教程。
我用asdf来安装erlang、elixir和postgres。我在用macbook。
当我进入运行mix ecto.setup
的步骤时,我会得到以下错误:
20:44:47.318[error]GenServer#PID<0.1605.0>终止**(DBConnection.ConnectionError)tcp连接(localhost:5432):连接被拒绝-:econrefused(db_connection)lib/db_connection/connection.ex:163:DBConnection.connection/2(连接)lib/connection.ex:622:connection.enter_connect/5(stdlib)proc_lib.erl:249::proc_lib.init_p_do_apply/3最后一条消息:nil状态:Postgrex.Protocol**(Mix)无法创建Community.Repo的数据库:引发了异常:**(DBConnection.ConnectionError)tcp连接(localhost:5432):连接被拒绝-:econrefused(db_connection)lib/db_connection/connection.ex:163:DBConnection.connection/2(连接)lib/connection.ex:622:connection.enter_connect/5(stdlib)proc_lib.erl:249::proc_lib.init_p_do_apply/3
它可能是什么?
根据asdf postgree文档,您必须启动postgres:
pg_ctl start
为了运行命令mix ecto.create
和mix ecto.setup
,您必须使用密码postgres创建一个用户postgres,并且postgres用户必须同时拥有LOGIN和CREATEDB的权限,然后您可以:
创建默认数据库:
createdb default
使用登录到该数据库
psql -d default
并创建具有权限的用户:
# CREATE ROLE postgres LOGIN CREATEDB PASSWORD 'postgres';