From 7e76d07e285bfe7dd4a8959748fc99d050bdfcc4 Mon Sep 17 00:00:00 2001 From: DullJZ <79080562+DullJZ@users.noreply.github.com> Date: Mon, 5 May 2025 09:45:34 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81mysql=20socket?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 1 + README.md | 1 + app/config/config.py | 1 + app/database/connection.py | 5 ++++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 6cf18ec..2683fc2 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,6 @@ # MySQL数据库配置 MYSQL_HOST=gemini-balance-mysql +#MYSQL_SOCKET=/run/mysqld/mysqld.sock MYSQL_PORT=3306 MYSQL_USER=gemini MYSQL_PASSWORD=change_me diff --git a/README.md b/README.md index 5d9ec91..3f340a4 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ app/ | :--------------------------- | :------------------------------------------------------- | :---------------------------------------------------- | | **数据库配置** | | | | `MYSQL_HOST` | 必填,MySQL 数据库主机地址 | `localhost` | +| `MYSQL_SOCKET` | 可选,MySQL 数据库 socket 地址 | `/var/run/mysqld/mysqld.sock` | | `MYSQL_PORT` | 必填,MySQL 数据库端口 | `3306` | | `MYSQL_USER` | 必填,MySQL 数据库用户名 | `your_db_user` | | `MYSQL_PASSWORD` | 必填,MySQL 数据库密码 | `your_db_password` | diff --git a/app/config/config.py b/app/config/config.py index 466f2fc..cf3e80a 100644 --- a/app/config/config.py +++ b/app/config/config.py @@ -20,6 +20,7 @@ class Settings(BaseSettings): MYSQL_USER: str MYSQL_PASSWORD: str MYSQL_DATABASE: str + MYSQL_SOCKET: str = None # API相关配置 API_KEYS: List[str] diff --git a/app/database/connection.py b/app/database/connection.py index cfa77e0..6066343 100644 --- a/app/database/connection.py +++ b/app/database/connection.py @@ -12,7 +12,10 @@ from app.log.logger import get_database_logger logger = get_database_logger() # 数据库URL -DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@{settings.MYSQL_HOST}:{settings.MYSQL_PORT}/{settings.MYSQL_DATABASE}" +if settings.MYSQL_SOCKET: + DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@/{settings.MYSQL_DATABASE}?unix_socket={settings.MYSQL_SOCKET}" +else: + DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@{settings.MYSQL_HOST}:{settings.MYSQL_PORT}/{settings.MYSQL_DATABASE}" # 创建数据库引擎 # pool_pre_ping=True: 在从连接池获取连接前执行简单的 "ping" 测试,确保连接有效