# 数据库配置和使用指南 ## 📋 数据库连接信息 ### 开发环境 (MySQL) - **主机**: 129.211.213.226 - **端口**: 9527 - **用户名**: root - **密码**: aiotAiot123! - **数据库**: ajhdata ### 生产环境 (MySQL) - **主机**: 129.211.213.226 - **端口**: 9527 - **用户名**: root - **密码**: aiotAiot123! - **数据库**: ajhdata ## 🚀 快速开始 ### 1. 安装依赖 ```bash cd backend npm install ``` ### 2. 配置环境变量 复制环境变量模板文件: ```bash cp .env.example .env.development ``` 编辑 `.env.development` 文件,根据实际环境修改配置: ```env NODE_ENV=development DB_HOST=192.168.0.240 DB_PORT=3306 DB_USERNAME=root DB_PASSWORD=aiot$Aiot123 DB_DATABASE=ajhdata ``` ### 3. 验证数据库连接 ```bash # 完整初始化验证 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. 使用事务保证数据一致性 ## 🔗 相关文档 - [MySQL官方文档](https://dev.mysql.com/doc/) - [mysql2 npm包文档](https://www.npmjs.com/package/mysql2) - [连接池最佳实践](https://github.com/mysqljs/mysql#pooling-connections)