Milvus 向量数据库的安装和启动
·
Milvus 是一个高性能的开源向量数据库 ,广泛应用于RAG系统向量检索。安装 Milvus 的方法有多种,包括 Docker 安装、源码安装 和 二进制文件安装。本文主要讲基于docker的安装方法。
前置准备:
1.安装了 Docker 和 Docker Compose。
可以通过以下命令检查是否安装了 Docker 和 Docker Compose:
docker --version
docker-compose --version
2.下载官方的 docker-compose.yml 文件


3.拉取镜像并启动服务

root@cyz:~# docker-compose -f docker-compose.yml up -d
4. 记录一次踩坑经历
由于原本环境启用了minio服务,导致milvus自带的minio服务总是启动不起来,停掉原来的minio也总是报错(估计是两个minio服务的配置文件冲突了):


于是删除原有的minio容器和镜像,并重新拉起服务
root@cyz:~# docker-compose down
Stopping milvus-standalone ... done
Stopping milvus-etcd ... done
Removing milvus-standalone ... done
Removing milvus-etcd ... done
Removing 0c613052b8e3_milvus-minio ... done
Removing network milvus
root@cyz:~#
root@cyz:~# sudo rm -rf ./volumes/minio
root@cyz:~#
total 104
drwx------ 9 root root 4096 Apr 1 10:37 ./
drwxr-xr-x 21 root root 4096 Apr 1 09:54 ../
-rw------- 1 root root 147 Mar 30 09:16 .Xauthority
-rw------- 1 root root 22412 Mar 27 17:18 .bash_history
-rw-r--r-- 1 root root 3180 Feb 13 14:15 .bashrc
drwx------ 2 root root 4096 Feb 2 09:24 .cache/
drwxr-xr-x 3 root root 4096 Feb 13 14:16 .config/
drwx------ 3 root root 4096 Feb 3 10:20 .docker/
-rw-r--r-- 1 root root 0 Mar 30 09:16 .motd_shown
drwxr-xr-x 4 root root 4096 Feb 13 11:30 .npm/
drwx------ 11 root root 4096 Feb 13 15:53 .openclaw/
-rw-r--r-- 1 root root 161 Jul 9 2019 .profile
-rw------- 1 root root 7 Feb 2 11:37 .python_history
drwx------ 2 root root 4096 Feb 13 12:07 .ssh/
-rw------- 1 root docker 13067 Apr 1 10:37 .viminfo
-rw-r--r-- 1 root root 215 Mar 30 14:21 .wget-hsts
-rw-r--r-- 1 root root 1790 Apr 1 10:40 docker-compose.yml
drwxr-xr-x 4 root root 4096 Apr 1 10:45 volumes/
root@cyz:~# docker-compose up -d
Creating network "milvus" with the default driver
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
5.设置密码
步骤 1:下载 milvus.yaml 配置文件
在服务器上(与 docker-compose.yml 同级目录 /root 下)执行:
cd /root
wget https://raw.githubusercontent.com/milvus-io/milvus/v2.6.10/configs/milvus.yaml
步骤 2:修改 milvus.yaml 开启认证
用编辑器打开 milvus.yaml,找到 common.security 部分,修改如下:
common:
security:
authorizationEnabled: true # 改为 true,开启认证
说明:开启认证后,Milvus 会自动创建一个默认超级用户:
• 用户名:root
• 密码:Milvus
你可以在成功连接后,用代码修改此默认密码或创建新用户。
步骤 3:修改 docker-compose.yml 挂载配置文件
在 standalone 服务的 volumes 中,新增一行挂载刚才下载并修改的 milvus.yaml:
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.25
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2024-12-18T13-15-44Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
- "9000:9000"
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server /minio_data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.6.10
command: ["milvus", "run", "standalone"]
security_opt:
- seccomp:unconfined
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
MQ_TYPE: woodpecker
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
- ./milvus.yaml:/milvus/configs/milvus.yaml # 新增这一行
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
networks:
default:
name: milvus
步骤 4:重启 Milvus 服务
cd /root
docker-compose -f docker-compose.yml down
docker-compose -f docker-compose.yml up -d
6:更新密码
from pymilvus import connections, update_password
def connect_milvus():
"""连接 Milvus 服务器并修改密码"""
import pymilvus
print("当前 pymilvus 版本:", pymilvus.__version__)
try:
# 1. 使用默认账号密码进行连接
connections.connect(
alias="default",
host="xxxxxxx", # 你的服务器公网IP
port="19530",
user="root", # 默认用户名
password="Milvus" # 默认密码
)
print("Milvus 连接成功")
# 2. 修改密码
update_password(
user="root", # 要修改密码的用户名
old_password="Milvus", # 旧密码
new_password="YourNewPassword123" # 在这里写你想要设置的新密码
)
print("密码修改成功!")
except Exception as e:
print(f"操作失败: {e}")
connect_milvus()
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)