当前位置: 首页 > news >正文

【Milvus安装】Windows安装Milvus向量数据库保姆级教程|一步一图从零搭建

一、Milvus 是什么?

Milvus(米尔沃斯)是目前最火的开源向量数据库,专门用来存储、索引和搜索海量向量数据,是 RAG 检索增强生成、推荐系统、图像检索等 AI 应用的标配。

核心能力

  • 🚀 亿级向量毫秒级检索
  • 📦 支持 IVF、HNSW 等多种索引
  • 🔌 完美对接 LangChain、LlamaIndex
  • 🖥️ 单机 / 集群多种部署方式

⚠️划重点:Milvus没有原生 Windows 版本,官方推荐通过Docker Desktop + WSL2运行。这是标准方案,性能和 Linux 几乎无差别,放心用。


二、第一步:检查虚拟化是否开启

安装 Docker 之前,先确认你的 CPU 虚拟化已经打开。

操作步骤

  1. 按下Ctrl + Shift + Esc打开任务管理器
  2. 点击「性能」选项卡 → 选择「CPU」
  3. 看右下角有没有「虚拟化:已启用」

状态怎么办
✅ 已启用直接往下走
❌ 未启用重启电脑进 BIOS,打开 Intel VT-x / AMD-V

三、第二步:安装 Docker Desktop

3.1 下载安装

  1. 官网下载:https://www.docker.com/get-started/
  2. 双击安装包,一路下一步
  3. 安装完必须重启电脑(WSL2 内核更新需要)

3.2 确认 Docker 运行正常

重启后 Docker Desktop 会自动启动,看到下面这个界面,左下角鲸鱼图标是绿色的,就说明运行正常:

3.3 验证 WSL2

打开 PowerShell 执行:

wsl --list --verbose

看到docker-desktop状态是Running、版本是2,就 OK 了。


四、第三步:安装 Milvus(一键脚本法)

推荐新手用官方一键脚本,最简单,一条命令搞定。

4.1 创建工作目录

打开 PowerShell,执行:

# 切换到D盘(推荐,别放C盘) D: # 创建milvus文件夹 mkdir milvus cd milvus

4.2 下载安装脚本

Invoke-WebRequest https://raw.githubusercontent.com/milvus-io/milvus/refs/heads/master/scripts/standalone_embed.bat -OutFile standalone.bat

💡下载失败怎么办?

GitHub 网络不好的话,换这条命令:

certutil -urlcache -split -f "https://raw.githubusercontent.com/milvus-io/milvus/refs/heads/master/scripts/standalone_embed.bat" standalone.bat

4.3 启动 Milvus

.\standalone.bat start

首次启动会自动拉取镜像,大概 3~10 分钟,耐心等。看到下面的提示就说明成功了:


五、第四步:验证安装结果

5.1 查看容器状态

docker ps

正常会看到3 个容器都在运行:

三个容器分别是:

容器名作用
milvus-standaloneMilvus 核心服务
milvus-etcd元数据存储
milvus-minio对象存储(存向量数据文件)

5.2 端口说明

端口用途
19530主端口(gRPC,Python SDK 用这个)
9091HTTP API 端口

六、第五步:安装 Attu 可视化工具

光用命令行不方便,Attu 是官方可视化管理工具,图形化查看集合、数据、索引。

6.1 下载 Attu 桌面版

  1. 打开下载页:https://github.com/zilliztech/attu/releases
  2. 找最新版,下载 Windows 安装包(attu-windows-x64.exe
  3. 双击安装,下一步下一步

6.2 连接 Milvus

打开 Attu,输入连接信息:

  • Milvus 地址localhost:19530
  • 用户名:留空
  • 密码:留空

点「连接」就进去了!

6.3 Attu 主界面

连接成功后,你可以看到所有集合、向量数量、状态等信息:

⚠️版本匹配提醒:Milvus 2.5.x 对应 Attu 2.5.x,版本不匹配会连接失败。


七、第六步:Python 连接测试

用代码验证一下能不能正常操作。

7.1 安装 SDK

pip install pymilvus

7.2 测试代码

from pymilvus import MilvusClient 连接本地 Milvus client = MilvusClient(uri="http://localhost:19530") print("✅ Milvus 连接成功!") 创建测试集合 client.create_collection( collection_name="hello_milvus", dimension=768 ) print("✅ 测试集合创建成功!") 查看所有集合 print("当前集合:", client.list_collections())

运行效果:

看到这个输出,恭喜你!Milvus 环境完全搞定了!


八、第七步:对接 LangChain(进阶)

和上一篇的文档切分无缝对接,几行代码搞定向量存储:

from langchain_milvus import Milvus from langchain_community.embeddings import HuggingFaceEmbeddings 初始化 embedding 模型 embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2") 文档块存入 Milvus vector_store = Milvus.from_documents( documents=chunk_docs, # 上一篇切好的文本块 embedding=embeddings, connection_args={"host": "localhost", "port": "19530"}, collection_name="knowledge_base", ) 相似度检索 results = vector_store.similarity_search("保修政策是什么?", k=3)

九、常用命令速查表

# 启动 Milvus .\standalone.bat start 停止 Milvus .\standalone.bat stop 查看状态 .\standalone.bat status 查看日志 docker logs milvus-standalone 完全卸载(删所有数据) .\standalone.bat delete

十、常见踩坑解决方案

❌ 坑 1:Docker Engine 启动失败

解决

  1. 确认虚拟化已开(任务管理器看)
  2. 执行wsl --update更新内核
  3. 重启 Docker Desktop

❌ 坑 2:镜像拉取慢 / 失败

解决:配置国内镜像源

Docker Desktop → Settings → Docker Engine,加入:

{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] }

Apply & Restart 重启。

❌ 坑 3:C 盘空间被占满

原因:Docker 默认数据存在 C 盘

解决:迁移到 D 盘

Docker Desktop → Settings → Resources → Disk image location → 改到 D 盘

❌ 坑 4:Python 连不上

排查顺序

  1. docker ps确认容器在跑
  2. telnet localhost 19530确认端口通
  3. 检查防火墙,临时关了试试
  4. URI 写全:http://localhost:19530

十一、全文总结

  1. Milvus 没有 Windows 原生版,通过 Docker Desktop + WSL2 运行是官方标准方案
  2. 安装三步曲:装 Docker → 跑一键脚本 → Attu 可视化管理
  3. 三个核心容器:milvus-standalone(主服务)、etcd(元数据)、minio(对象存储)
  4. 默认端口 19530,Python SDK 和 LangChain 都用这个
  5. Attu 必备:图形化管理,调试、查数据都靠它

觉得有用的话,点赞 + 收藏 + 关注,持续更新 RAG 从零到企业级落地全套教程!

http://www.cnnetsun.cn/news/3760259.html

相关文章:

  • 稳压二极管限流电阻选型详解:从公式到实战避坑指南
  • Mem Reduct深度解析:轻量级内存管理工具的核心机制与实战优化指南
  • RC并联电路实战指南:从滤波到定时,硬件工程师必懂的核心模块
  • 线上采购越来越多!企优托李跃跃解析苏州工厂为何必做百度爱采购
  • 树形DP核心解析:从AcWing 285看状态转移与C++实现
  • 后端接口挂了,前端怎么继续干活?这个 Chrome 扩展让我再也没等过后端
  • Transformer架构解析:从原理到AI实践应用
  • 2、BellMan-Ford算法
  • 濮阳工厂目视化设计5S管理落地完整方案
  • Android面试核心:Handler、RecyclerView与内存泄漏实战解析
  • C++ string类完全指南:从基础使用到底层优化与性能陷阱
  • macbook能玩steam里面的哪些游戏
  • AI搜索中的GEO优化技术:提升转化率的关键
  • ADB命令详解:Android音量控制原理与自动化脚本实践
  • C/C++数组与指针深度解析:从内存模型到多维访问实战
  • Python排序文件按时间?这招绝了,别再傻傻手动翻
  • 数组指针---指向数组的指针
  • 从零部署网站:Nginx手动配置与宝塔面板可视化部署全攻略
  • C++字符编码终极指南:从乱码根源到UTF-8最佳实践
  • UnityHub安装Android模块失败?从网络到环境冲突的完整排查与修复指南
  • 小马宝莉辉月11拆卡攻略:从真伪鉴别到收藏管理的完整指南
  • Unity iOS打包全流程排障指南:从证书配置到上架避坑
  • 基于SpringBoot+Vue的社区医院管理系统设计与实现
  • AI幻觉效应解决方案:多模型交叉验证实战
  • 软件模拟SPI:原理、代码实现与调试优化全解析
  • SEO优化指南:从基础原理到实战技巧
  • 06:装了一个证书,你的所有 HTTPS 就全裸了
  • STM32 Flash下载失败全解析:从保护机制到解锁实战
  • 样条插值:从线性到三次样条,平滑曲线构建原理与实践
  • Vue Router 4 实战:从基础到进阶,解决嵌套路由与状态管理难题