无法连接Phoenix服务器:Elixir新手连接失败求助
解决IEx远程连接Phoenix服务器的:noconnection问题
问题描述
我是Elixir和Phoenix新手,启动Phoenix服务器使用命令:
$ iex --sname myapp --cookie mycookie -S mix phx.server
尝试通过另一个IEx会话远程连接时执行:
$ iex --sname debug --cookie mycookie --remsh myapp@localhost
结果报错:noconnection,无法启动远程IEx CLI。
解决方案
- 确认节点完整名称:使用
--sname时,节点名会自动拼接当前系统的主机名,而非固定localhost。先在服务器的IEx控制台执行Node.self(),查看实际节点名(比如myapp@your-computer-name),连接时需使用对应主机部分的节点名;或者改用--name显式指定完整节点名:
启动服务器:
远程连接:$ iex --name myapp@localhost --cookie mycookie -S mix phx.server$ iex --name debug@localhost --cookie mycookie --remsh myapp@localhost - 检查epmd服务状态:Erlang节点依赖epmd服务进行节点发现,本地执行
epmd -names命令,确认myapp节点已注册。如果未运行,手动启动epmd:epmd -daemon。 - 保证cookie完全一致:两个节点的cookie必须完全相同,包括大小写(Erlang cookie是原子类型,大小写敏感)。
- 验证主机名解析:确保
localhost能正确解析到127.0.0.1,可在/etc/hosts(Linux/macOS)或C:\Windows\System32\drivers\etc\hosts(Windows)中确认配置,也可直接使用IP地址指定节点名,比如myapp@127.0.0.1。
内容的提问来源于stack exchange,提问作者Moon soon
相关产品推荐
相关产品推荐

