Windows环境运行Elixir应用报错:无法设置短节点名称
解决Windows下Elixir Mix Release启动节点名错误的问题
我之前在Windows上部署Elixir release时也碰到过一模一样的报错,结合你的配置和尝试过的方法,咱们从核心配置入手来解决:
1. 修正env.bat.eex的节点配置
你的env.bat.eex里有两个关键问题:
RELEASE_DISTRIBUTION被注释了,而且设置值不对(应该是name或sname,不是应用名km)- 当使用长节点名格式(
xxx@127.0.0.1)时,必须启用RELEASE_DISTRIBUTION
修改后的env.bat.eex应该是这样:
@echo off rem Set the release to work across nodes. If using the long name format like rem the one below (my_app@127.0.0.1), you need to also uncomment the rem RELEASE_DISTRIBUTION variable below. set RELEASE_DISTRIBUTION=name set RELEASE_NODE=<%= @release.name %>@127.0.0.1
2. 重新构建Release
因为修改了环境配置文件,必须重新生成release才能让配置生效:
mix release --env=prod
3. 正确启动Release
- 直接使用配置好的节点名启动:
.\_build\prod\rel\prod\bin\prod start - 如果需要临时指定节点名,要用长节点名参数
--name(短节点名--sname依赖Windows计算机名的合法性,容易出问题):.\_build\prod\rel\prod\bin\prod start --name zpc@127.0.0.1
4. 额外注意事项
- 确保你是在Windows环境下构建的Release:跨平台构建(比如在Linux上构建Windows版本)可能会导致节点配置的兼容性问题
- 检查Windows计算机名:如果一定要用
--sname,计算机名必须是纯英文、不含特殊字符、长度不超过15位,并且hosts文件里要有127.0.0.1 你的计算机名的条目
内容的提问来源于stack exchange,提问作者Nightwolf
相关产品推荐
相关产品推荐

