feat: 支持mysql socket连接

This commit is contained in:
DullJZ
2025-05-05 09:45:34 +00:00
parent d21fb6c455
commit 7e76d07e28
4 changed files with 7 additions and 1 deletions

View File

@@ -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

View File

@@ -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` |

View File

@@ -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]

View File

@@ -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" 测试,确保连接有效