这个坑值得记一笔。本地起了一套向量库,代码连 19530 端口报 Fail connecting to server,容器状态显示正常运行。

刚开始盯着「认证开启但没传 token」,折腾了半个多小时,排掉了。

原因不止一个,得分开看。连的是容器内端口,宿主机映射的是别的端口;服务还在启动中,健康检查未通过;网络策略只允许特定来源访问。

动手时先确认宿主机端口映射

docker port milvus-standalone

然后按实际地址与端口连接

connections.connect(host='127.0.0.1', port='19530')

连接后列出集合验证通路

python -c "from pymilvus import utility;print(utility.list_collections())"

带认证信息时补齐 token

connections.connect(uri='http://127.0.0.1:19530', token='root:Milvus')

同样的操作我在测试机上先走了一遍,线上只做验证过的部分。

这台环境是别人交接的,不少默认值被动过,只能一项项核。

改完先别撤,确认这几项。连接成功且能列出集合,写入与检索都正常,服务重启后自动重连不再报错。

补一句。连接对象是全局的,多线程里各自 connect 会互相覆盖,初始化和使用要放在同一套生命周期管理里。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189