1.MySQL

前置准备(必须先完成)

1. 安装 Docker Desktop(Windows)

  • 官网下载:Docker Desktop
  • 安装时默认勾选「Use WSL 2 instead of Hyper-V」(Windows 推荐方案)
  • 安装完成后重启电脑,打开 Docker Desktop,左下角显示「Docker Desktop is running」即为启动成功。

2. VS Code 安装必备扩展

在扩展商店搜索安装:

  • Docker(Microsoft 官方出品,用来可视化管理容器、镜像、执行命令)
  • Database Client(Weijan Chen,可视化管理数据库,支持 MySQL/PostgreSQL 等绝大多数数据库)

分步操作:以最常用的 MySQL 8.0 为例

步骤 1:拉取 MySQL 官方镜像

打开 VS Code 终端(任意目录均可),执行拉取命令:

docker pull mysql:8.0

下载完成后,可在 VS Code 左侧「Docker」面板的「Images」中看到该镜像。

步骤 2:启动 MySQL 容器(核心,带数据持久化)

在终端执行启动命令,关键参数包含端口映射、密码、自动建库、数据卷挂载(防止容器删除后数据丢失)。

Windows PowerShell 中建议写成一行,避免换行报错:

docker run -d --name mysql-course -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=ai_course_db -v mysql-data:/var/lib/mysql --restart always mysql:8.0

参数说明:

参数作用
--name mysql-course自定义容器名称,方便后续管理
-p 3306:3306端口映射:本地 3306 端口 → 容器内 3306 端口
-e MYSQL_ROOT_PASSWORD=123456设置 root 用户的密码,可自定义
-e MYSQL_DATABASE=ai_course_db启动时自动创建一个数据库,对应你的作业项目
-v mysql-data:/var/lib/mysql数据卷挂载:数据库数据持久化到本地,删除容器数据不会丢失
--restart always开机自启:Docker 启动后数据库自动运行

步骤 3:验证容器运行状态

执行命令查看容器,STATUS 显示 Up 即为运行成功:

docker ps

也可以在 VS Code 左侧「Docker」面板的「Containers」中查看,绿色三角标识代表运行中。


步骤 4:VS Code 可视化连接数据库

用 Database Client 插件可视化管理表、执行 SQL,不用额外安装数据库客户端:

  1. 点击 VS Code 左侧「数据库」图标(Database Client 面板)
  2. 点击「新建连接」→ 选择「MySQL」
  3. 填写连接信息:
    • 主机:127.0.0.1(本地)
    • 端口:3306
    • 用户名:root
    • 密码:123456(和启动命令里的密码一致)
    • 数据库:ai_course_db(可选,填了直接进入指定库)
  4. 点击「测试连接」,提示成功后点击「保存」,即可可视化建表、查询数据。


步骤 5:后续在这个项目里新建其他数据库

在当前界面新建数据库的操作步骤

  1. 右键点击上方的「AI 课程 mySQL 8.0.46」连接名
  2. 选择「新建查询」
  3. 在弹出的 SQL 编辑窗口里输入建库语句,例如:
    CREATE DATABASE IF NOT EXISTS 数据库名称 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  4. 点击执行按钮(闪电图标)运行语句
  5. 执行成功后,右键刷新连接,就能在列表里看到你新建的数据库,和 ai_course_db 并排显示。

 步骤 6:Python 项目中连接数据库

在你的作业项目中安装依赖,用代码连接数据库(以 SQLAlchemy 为例,兼容 LangChain):

  1. 安装依赖:
    uv add pymysql sqlalchemy
    
  2. 连接测试代码:
    from sqlalchemy import create_engine, text
    
    # 数据库连接地址格式:mysql+pymysql://用户名:密码@地址:端口/数据库名
    DB_URL = "mysql+pymysql://root:123456@127.0.0.1:3306/ai_course_db"
    
    # 创建数据库引擎
    engine = create_engine(DB_URL)
    
    # 测试连接
    with engine.connect() as conn:
        result = conn.execute(text("SELECT VERSION()"))
        print("数据库版本:", result.scalar())
    


常用 Docker 数据库操作命令

操作命令
停止运行中的容器docker stop mysql-course
启动已停止的容器docker start mysql-course
重启容器docker restart mysql-course
删除容器(需先停止)docker rm mysql-course
查看所有容器(含停止的)docker ps -a
查看容器运行日志docker logs mysql-course

2.Milvus

整体流程:

  • D 盘新建文件夹 D:\milvus
  • 在这个目录执行 curl 下载官方单机版 yml
  • 在 D:\milvus 执行 docker compose up -d 启动独立 Milvus 服务

Milvus 服务独立部署,不和业务代码放在同一个项目目录,这是非常标准、推荐的做法。

完整操作步骤(在线拉取,新建向量库)

1. 新电脑提前启动 Docker Desktop

等待引擎运行成功。

2. 创建目录

D 盘手动新建文件夹

D:\milvus

3. 进入目录,在此处打开 PowerShell

进入 D:\milvus → 空白处 Shift + 右键 → 在此处打开 PowerShell 执行下载官方稳定版单机配置:

curl -Uri "https://github.com/milvus-io/milvus/releases/download/v2.4.15/milvus-standalone-docker-compose.yml" -OutFile docker-compose.yml

如果 github 访问超时下载失败(输入该命令之后命令行无返回),两种解决办法: ①旧电脑 U 盘直接复制 D:\milvus\docker-compose.yml 到新电脑 D:\milvus,不用重新下载 ②直接新建文档docker-compose.yml(务必修改后缀,不要保存成 docker-compose.yml.txt),复制粘贴下面这段代码并保存

version: '3.5'
services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.5
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/etcd_data:/etcd
    command: etcd -name=etcd -data-dir=/etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls=http://0.0.0.0:2379 --listen-peer-urls=http://0.0.0.0:2380
    ports:
      - "2379:2379"

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9000:9000"
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/minio_data:/data
    command: minio server /data

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.4.15
    command: ["milvus", "run", "standalone"]
    security_opt:
      - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/milvus_data:/var/lib/milvus
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"

执行完成后,目录里会出现一个 docker-compose.yml 文件,这个文件里定义了 3 个服务:

  • milvus-standalone:Milvus 向量数据库主服务
  • etcd:存储元数据(集合、索引等信息)
  • minio:对象存储,保存实际向量与数据文件

创建 yml 文件完成后,先查看文件夹确认文件存在:

ls

列表出现 docker-compose.yml,才能执行 docker compose up -d。

4. 启动 Milvus

在 docker-compose.yml 所在的目录执行:

docker compose up -d

自动拉取 milvusdb/milvus:v2.4.15、etcd 镜像,后台启动服务。

5. 验证启动

docker ps

看到 milvus、etcd 容器即为成功。 服务地址不变:localhost:19530,你的代码无需修改连接地址。

核心端口说明

  • 19530:gRPC 端口,Python、LangChain 客户端连接用(我们主要用这个)
  • 9091:HTTP REST API 端口

6. VS Code 中 Python 连接验证

安装 Python 客户端

在你的项目终端执行(你用 uv 环境,直接执行):

uv add pymilvus

新建测试脚本验证连接

在 VS Code 新建 test_milvus.py,粘贴以下代码并运行:

from pymilvus import connections

# 连接本地 Milvus
connections.connect(
    alias="default",
    host="localhost",
    port="19530"
)

print("✅ Milvus 连接成功")

# 查看当前所有集合
from pymilvus import utility
print("当前集合列表:", utility.list_collections())

运行后输出「连接成功」就说明部署完成,可以正常使用了。

📌 Milvus 和 MySQL 部署结构总结(你的最终架构)

  1. Milvus 路径:D:\milvus\docker-compose.yml 启动方式:docker compose up -d
  2. MySQL 启动方式:独立docker run命令,无 yml 文件

两个服务互相独立,分开启动,不用整合在同一个 compose,维持你原来的使用习惯

更多推荐