后台初始化mysql和chromadb

1,123 阅读2分钟

安装mysql

首先需要启动一个本地的mysql服务,用于存储服务端的相关数据。(如果是云开发,可以忽略,IP直连搞定😎)。这里讲一下如何在 MacOs(arm64)上启动 一般我们会推荐在docker中启动mysql,好处当然是与宿主运行环境隔离,方便数据管控和资源处理。最简单的就是安装一个docker-desktop,快捷启动docker。但是,在mac上,docker-desktop是要收费的,所以只能想想其他的替代方案。推荐 lima 保姆级教程,亲测好用 安装并启动好后,会看到终端已经运行起来了docker

image.png 如果出现报错limactl start ./docker.yaml ? Creating an instance "docker" Proceed with the current configuration FATA[0004] instance "docker" already exists ("/Users/temp/.lima/docker")

执行

limactl start docker

接下来就是安装mysql

sudo docker pull mysql:latest

在3306端口启动mysql服务

sudo docker run -d --name mysql-server -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 
mysql:latest

可以通过

sudo docker ps

查看mysql服务是否已经成功运行,成功的话会看到

image.png

安装好mysql后,推荐再安装一个可视化的管理端方便我们查看数据库,这里我们安装

sudo docker pull phpmyadmin/phpmyadmin

同样的,安装好后我们启动它

sudo docker run -d --name phpmyadmin --link mysql-server:db -p 8080:80 -e PMA_HOST=mysql-server -e PMA_PORT=3306 -e PMA_USER=root -e PMA_PASSWORD=my-secret-pw   phpmyadmin/phpmyadmin

我们在浏览器上输入 localhost:8080 就可以看到mysql的可视化管理页了

image.png

安装向量数据库

这里介绍的是 chromadb,因为我们用的是这个啦。chromadb也有docker直接安装的方案,这里介绍用python安装并启动。 也非常简单,首先是安装 chromadb 这个包,然后在安装后的目录下启动服务端

chroma run --path /db_path

如果遇到报错 error while attempting to bind on address ('::1', 8000, 0, 0): cannot assign requested address

chroma run --path /db_path --host 0.0.0.0 --port 8000

之后,执行下面的python脚本

import chromadb
from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware

# 初始化app
app = FastAPI()


# 添加路由
@app.get("/api/v1/heartbeat")
def read_root():
    return {"Hello": "World"}


app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

if __name__ == "__main__":
    import uvicorn

    chroma_client = chromadb.HttpClient(host='localhost', port=8000)
    uvicorn.run(app, host="0.0.0.0", port=8003)

可以看到,chromadb也成功运行在本地了。 image.png 此时便可以将你的后台服务中用到的chroma连接到这个地址上, 这样就可以正常用这个数据库完成向量的保存和搜索了。

image.png