Files
aijianhua/docs/README_DATABASE.md

3.0 KiB
Raw Blame History

数据库配置和使用指南

📋 数据库连接信息

开发环境 (MySQL)

  • 主机: 129.211.213.226
  • 端口: 9527
  • 用户名: root
  • 密码: aiotAiot123!
  • 数据库: ajhdata

生产环境 (MySQL)

  • 主机: 129.211.213.226
  • 端口: 9527
  • 用户名: root
  • 密码: aiotAiot123!
  • 数据库: ajhdata

🚀 快速开始

1. 安装依赖

cd backend
npm install

2. 配置环境变量

复制环境变量模板文件:

cp .env.example .env.development

编辑 .env.development 文件,根据实际环境修改配置:

NODE_ENV=development
DB_HOST=192.168.0.240
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=aiot$Aiot123
DB_DATABASE=ajhdata

3. 验证数据库连接

# 完整初始化验证
npm run db:init

# 只检查连接状态
npm run db:check

📁 配置文件说明

config/database.js

主数据库配置文件,根据环境变量自动选择配置:

  • 开发环境: NODE_ENV=development
  • 生产环境: NODE_ENV=production

.env.example

环境变量配置模板,包含所有可配置参数。

utils/dbConnector.js

数据库连接工具类,提供:

  • 连接池管理
  • SQL查询执行
  • 事务支持
  • 健康检查

scripts/initDatabase.js

数据库初始化脚本,功能:

  • 验证数据库连接
  • 检查数据库版本
  • 执行SQL文件预留

🔧 可用脚本命令

命令 描述
npm run db:init 完整数据库初始化验证(脚本位于 /scripts/backend/ 目录)
npm run db:check 只检查数据库连接状态
npm run db:migrate 执行数据库迁移(预留)
npm run db:seed 填充初始数据(预留)

🛡️ 安全注意事项

  1. 密码保护: 数据库密码已配置在环境变量中,不要硬编码在代码里
  2. 连接池: 使用连接池避免频繁创建连接
  3. 错误处理: 所有数据库操作都有完整的错误处理
  4. SQL注入: 使用参数化查询防止SQL注入

📊 性能优化

  • 连接池配置: 最大20连接最小5连接
  • 超时设置: 获取连接超时60秒空闲连接超时30秒
  • 字符编码: UTF8MB4支持中文和emoji
  • 时区设置: 东八区(+08:00)

🔍 故障排除

连接失败

  1. 检查网络是否能访问数据库服务器
  2. 验证用户名密码是否正确
  3. 确认数据库服务是否启动

权限问题

  1. 检查用户是否有数据库访问权限
  2. 确认数据库是否存在

性能问题

  1. 检查连接池配置是否合理
  2. 监控数据库服务器负载

📝 开发建议

  1. 开发环境使用测试数据库配置
  2. 生产环境使用生产数据库配置
  3. 定期备份重要数据
  4. 使用事务保证数据一致性

🔗 相关文档