如何修改Context Broker的MongoDB连接端口?连接失败求助
嘿,这问题我熟!从你给出的错误信息就能明确看出问题所在:
Error: { "error": "InternalServerError", "description": "Database Error (collection: orion.entities - count (): {_id.id: & quot; ARMpalmerillas07 & quot ;, _id.type: & quot; GreenHouse & quot ;, _id.servicePath: {$ in: [/ ^ / ARMpalmerillas $ /]}} - exception: socket exception [CONNECT_ERROR] for localhost: 27017 (127.0.0.1) failed) " }
Context Broker(也就是Orion)还在死磕MongoDB的默认端口27017,咱们只要修改它的数据库连接配置,指向你新设置的MongoDB端口就行,下面是几种靠谱的实现方法:
方法1:启动时直接指定命令行参数
启动Orion的时候,用-dbhost参数明确指定MongoDB的地址和新端口。比如你的MongoDB改到了27018端口,命令就是:
contextBroker -dbhost localhost:27018
如果MongoDB不在本机,把localhost换成对应的IP地址就行。
方法2:通过环境变量配置
设置ORION_DB_HOST环境变量,让Orion启动时自动读取这个配置:
- 临时生效(仅当前会话):
export ORION_DB_HOST=localhost:27018 contextBroker - 如果是用Docker部署Orion,启动容器时加上环境变量参数:
注意:如果MongoDB在宿主机上,Docker容器里的docker run -d -p 1026:1026 fiware/orion -e ORION_DB_HOST=localhost:27018localhost指的是容器自身,这时候要换成宿主机的IP或者使用host.docker.internal(具体取决于Docker版本和操作系统)。
方法3:修改配置文件永久生效
如果是通过系统服务管理Orion(比如systemd),可以修改它的配置文件实现永久生效:
- 找到配置文件,通常路径是
/etc/sysconfig/contextBroker或者/etc/default/contextBroker - 找到
DB_HOST配置项,改成你的MongoDB地址和新端口:DB_HOST=localhost:27018 - 重启Orion服务使配置生效:
systemctl restart contextBroker
配置完成后,你可以用curl http://localhost:1026/version来验证Orion是否正常启动,或者查看它的日志确认MongoDB连接成功。
内容的提问来源于stack exchange,提问作者Manolait

