example.env•2.45 kB
# 服务器配置
HOST=127.0.0.1 # 服务器监听地址
PORT=3000 # 服务器监听端口
# 数据库连接配置
MYSQL_HOST=localhost # MySQL服务器地址
MYSQL_PORT=3306 # MySQL服务器端口
MYSQL_USER=root # MySQL用户名
MYSQL_PASSWORD= # MySQL密码(留空表示无密码)
MYSQL_DATABASE=testdb # 要连接的数据库名
DB_CONNECTION_TIMEOUT=5 # 连接超时时间(秒)
# MySQL 8.0 认证插件配置
# - mysql_native_password: 兼容性好,不需要额外依赖,但安全性较低
# - caching_sha2_password: MySQL 8.0 默认,安全性高,需要 cryptography 包
# 如果使用 MySQL 8.0 且用户采用 caching_sha2_password,请确保已安装 cryptography 包
DB_AUTH_PLUGIN=mysql_native_password # 认证插件类型
# 数据库连接池配置
DB_POOL_ENABLED=true # 是否启用连接池 (true/false)
DB_POOL_MIN_SIZE=5 # 连接池最小连接数
DB_POOL_MAX_SIZE=20 # 连接池最大连接数
DB_POOL_RECYCLE=300 # 连接回收时间(秒)
DB_POOL_MAX_LIFETIME=0 # 连接最大存活时间(秒,0表示不限制)
DB_POOL_ACQUIRE_TIMEOUT=10.0 # 获取连接超时时间(秒)
# 环境类型
# development: 开发环境,较少限制
# production: 生产环境,严格安全限制
ENV_TYPE=development
# 安全配置
# 允许的风险等级: LOW(查询), MEDIUM(安全修改), HIGH(结构变更), CRITICAL(危险操作)
ALLOWED_RISK_LEVELS=LOW,MEDIUM,HIGH
# 是否允许查询敏感字段信息(密码,凭证等)
ALLOW_SENSITIVE_INFO=false
# 最大SQL语句长度限制
MAX_SQL_LENGTH=5000
# 阻止的SQL模式,多个模式用逗号分隔
# 例如: 'DROP TABLE,DROP DATABASE,DELETE FROM' 将阻止包含这些字符串的查询
BLOCKED_PATTERNS=
# 是否启用查询安全检查
ENABLE_QUERY_CHECK=true
# 数据库隔离配置
# 是否启用数据库隔离(防止跨数据库访问)
ENABLE_DATABASE_ISOLATION=false
# 数据库访问级别: strict(严格), restricted(限制), permissive(宽松)
# - strict: 只能访问指定的数据库
# - restricted: 可以访问指定数据库和系统库(information_schema, mysql等)
# - permissive: 可以访问所有数据库(默认)
# 注意:生产环境(ENV_TYPE=production)会自动启用数据库隔离并设为restricted模式
DATABASE_ACCESS_LEVEL=permissive
# 日志配置
# DEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_LEVEL=DEBUG