从错误信息来看,你的 EdgeX-UI-Go 服务在启动时遇到了数据库连接问题。具体错误是:
dial tcp: lookup edgex-db: no such host
这表明程序无法解析主机名 edgex-db
,导致连接 MySQL 数据库失败。以下是解决方案:
1. 检查数据库配置
查看 D:\develop\station\edgex-ui-go\res\configuration.toml
文件中的数据库配置部分,确认:
[Database]
Host = "edgex-db" # 检查这里的主机名是否正确
Port = "3306"
Username = "your_username"
Password = "your_password"
Name = "your_dbname"
2. 修改主机名指向
根据你的环境选择以下方案之一:
方案A:使用本地数据库(推荐开发环境)
将配置中的 Host
改为本地地址:
Host = "127.0.0.1"
方案B:使用 Docker/DNS
如果是 Docker 环境:
- 确保
edgex-db
容器正在运行 (docker ps
) - 确保服务在同一个 Docker network 中
方案C:手动添加 hosts(临时方案)
编辑系统的 hosts 文件(C:\Windows\System32\drivers\etc\hosts):
127.0.0.1 edgex-db
3. GoLand调试建议
- 环境变量检查:确认 GoLand的运行/调试配置中没有覆盖数据库相关环境变量。
- 网络权限:如果使用 Windows防火墙,请允许 GoLand和 dlv.exe的网络访问。
4. MySQL服务验证
用其他工具(如MySQL Workbench)测试是否能连接到目标数据库。
需要进一步帮助可以提供:
- configuration.toml的数据库配置部分(隐藏敏感信息)
- 你使用的运行环境(纯本地/Docker/K8s等)
⚠️注意:错误日志显示的是2025年的时间,可能是系统时间设置有问题,建议也检查下实际时间是否准确。
内容由零声教学AI助手提供,问题来源于学员提问