refactor: 将数据库配置内置到脚本中,简化使用流程
改进内容: 1. export_database.sh - 将数据库配置直接内置在脚本顶部 - 移除外部配置文件依赖 - 配置项: DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME 2. import_database.sh - 将三个环境的配置内置在脚本顶部 - 配置项: DEV_DB_*, TEST_DB_*, PROD_DB_* - 无需额外配置文件 3. 更新操作指南 - 反映配置内置的变化 - 更新配置步骤说明 - 更新文件结构说明 优点: - 使用更简单,无需创建配置文件 - 配置集中在一处,易于管理 - 减少文件依赖 使用方法: 1. 编辑 export_database.sh 顶部配置数据库信息 2. 编辑 import_database.sh 顶部配置目标环境数据库信息 3. ./export_database.sh # 导出数据库 4. ./import_database.sh <dev|test|prod> # 导入到目标环境
This commit is contained in:
@@ -11,28 +11,31 @@
|
||||
1. **export_database.sh** - 数据库导出脚本
|
||||
- 从开发环境导出数据库
|
||||
- 生成表结构和数据文件到 `doc/database/backup/` 文件夹
|
||||
- 配置已内置在脚本顶部
|
||||
|
||||
2. **import_database.sh** - 数据库导入脚本
|
||||
- 从 `doc/database/backup/` 文件夹读取备份文件
|
||||
- 导入到指定的目标环境(dev/test/prod)
|
||||
- 配置已内置在脚本顶部
|
||||
|
||||
## 文件结构
|
||||
|
||||
```
|
||||
项目根目录/
|
||||
├── export_database.sh # 导出脚本
|
||||
├── import_database.sh # 导入脚本
|
||||
├── db_config.conf.template # 配置模板
|
||||
├── db_config.conf # 实际配置(不提交到 Git)
|
||||
├── export_database.sh # 导出脚本(配置已内置)
|
||||
├── import_database.sh # 导入脚本(配置已内置)
|
||||
└── doc/
|
||||
└── database/
|
||||
├── backup/ # 备份文件夹
|
||||
│ ├── .gitkeep
|
||||
│ ├── ccdi_structure.sql # 表结构(~60KB)
|
||||
│ └── ccdi_data.sql # 数据文件(~5.7MB)
|
||||
└── alter_collation_to_general_ci.sql # 排序规则修改脚本
|
||||
├── 数据库迁移操作指南.md # 本文档
|
||||
├── alter_collation_to_general_ci.sql # 排序规则修改脚本
|
||||
└── backup/ # 备份文件夹
|
||||
├── .gitkeep
|
||||
├── ccdi_structure.sql # 表结构(~60KB)
|
||||
└── ccdi_data.sql # 数据文件(~5.7MB)
|
||||
```
|
||||
|
||||
**注意:** 数据库配置已直接内置在脚本中,无需额外的配置文件。
|
||||
|
||||
## 前置条件
|
||||
|
||||
### 必需工具
|
||||
@@ -54,49 +57,60 @@ mysql --version
|
||||
|
||||
## 配置步骤
|
||||
|
||||
### 1. 创建配置文件
|
||||
### 1. 修改导出脚本配置
|
||||
|
||||
编辑 `export_database.sh` 脚本顶部配置:
|
||||
|
||||
```bash
|
||||
# 复制配置模板
|
||||
cp db_config.conf.template db_config.conf
|
||||
|
||||
# 编辑配置文件
|
||||
nano db_config.conf # 或使用其他编辑器
|
||||
# 源数据库配置(开发环境)
|
||||
DB_HOST="116.62.17.81" # 数据库地址
|
||||
DB_PORT="3306" # 数据库端口
|
||||
DB_USER="root" # 数据库用户名
|
||||
DB_PASS="Kfcx@1234" # 数据库密码
|
||||
DB_NAME="ccdi" # 数据库名称
|
||||
```
|
||||
|
||||
### 2. 填写配置信息
|
||||
### 2. 修改导入脚本配置
|
||||
|
||||
编辑 `db_config.conf` 文件,填写以下信息:
|
||||
编辑 `import_database.sh` 脚本顶部配置:
|
||||
|
||||
**源数据库(开发环境):**
|
||||
- `SOURCE_DB_HOST`: 开发环境数据库地址
|
||||
- `SOURCE_DB_PORT`: 数据库端口(默认 3306)
|
||||
- `SOURCE_DB_USER`: 数据库用户名
|
||||
- `SOURCE_DB_PASS`: 数据库密码
|
||||
- `SOURCE_DB_NAME`: 数据库名称(ccdi)
|
||||
**开发环境:**
|
||||
```bash
|
||||
DEV_DB_HOST="116.62.17.81" # 开发环境数据库地址
|
||||
DEV_DB_PORT="3306" # 数据库端口
|
||||
DEV_DB_USER="root" # 数据库用户名
|
||||
DEV_DB_PASS="Kfcx@1234" # 数据库密码
|
||||
DEV_DB_NAME="ccdi" # 数据库名称
|
||||
```
|
||||
|
||||
**生产环境数据库:**
|
||||
- `PROD_DB_HOST`: 生产环境数据库地址
|
||||
- `PROD_DB_PORT`: 数据库端口
|
||||
- `PROD_DB_USER`: 生产环境数据库用户名
|
||||
- `PROD_DB_PASS`: 生产环境数据库密码
|
||||
- `PROD_DB_NAME`: 数据库名称(ccdi)
|
||||
**测试环境:**
|
||||
```bash
|
||||
TEST_DB_HOST="your_test_host" # 测试环境数据库地址
|
||||
TEST_DB_PORT="3306" # 数据库端口
|
||||
TEST_DB_USER="your_test_user" # 数据库用户名
|
||||
TEST_DB_PASS="your_test_password" # 数据库密码
|
||||
TEST_DB_NAME="ccdi" # 数据库名称
|
||||
```
|
||||
|
||||
**测试环境数据库(可选):**
|
||||
- `TEST_DB_HOST`: 测试环境数据库地址
|
||||
- `TEST_DB_PORT`: 数据库端口
|
||||
- `TEST_DB_USER`: 测试环境数据库用户名
|
||||
- `TEST_DB_PASS`: 测试环境数据库密码
|
||||
- `TEST_DB_NAME`: 数据库名称(ccdi)
|
||||
**生产环境:**
|
||||
```bash
|
||||
PROD_DB_HOST="your_prod_host" # 生产环境数据库地址
|
||||
PROD_DB_PORT="3306" # 数据库端口
|
||||
PROD_DB_USER="your_prod_user" # 数据库用户名
|
||||
PROD_DB_PASS="your_prod_password" # 数据库密码
|
||||
PROD_DB_NAME="ccdi" # 数据库名称
|
||||
```
|
||||
|
||||
### 3. 验证配置
|
||||
|
||||
检查配置文件格式:
|
||||
查看配置是否正确:
|
||||
```bash
|
||||
cat db_config.conf | grep -E "^[A-Z]"
|
||||
```
|
||||
# 查看导出脚本配置
|
||||
head -20 export_database.sh
|
||||
|
||||
确保所有必需的配置项都已填写。
|
||||
# 查看导入脚本配置
|
||||
head -30 import_database.sh
|
||||
```
|
||||
|
||||
## 数据库导出
|
||||
|
||||
@@ -301,9 +315,13 @@ SELECT name, person_type FROM ccdi_biz_intermediary LIMIT 10;
|
||||
|
||||
**1. 配置数据库连接**
|
||||
```bash
|
||||
cp db_config.conf.template db_config.conf
|
||||
nano db_config.conf
|
||||
# 填写开发环境和生产环境数据库信息
|
||||
# 编辑导出脚本配置(开发环境)
|
||||
nano export_database.sh
|
||||
# 修改脚本顶部的 DB_HOST, DB_USER, DB_PASS 等配置
|
||||
|
||||
# 编辑导入脚本配置(生产环境)
|
||||
nano import_database.sh
|
||||
# 修改脚本顶部的 PROD_DB_HOST, PROD_DB_USER, PROD_DB_PASS 等配置
|
||||
```
|
||||
|
||||
**2. 导出数据库**
|
||||
@@ -319,6 +337,7 @@ head -20 doc/database/backup/ccdi_structure.sql
|
||||
|
||||
**4. 先在测试环境验证**
|
||||
```bash
|
||||
# 确保已在 import_database.sh 中配置测试环境
|
||||
./import_database.sh test
|
||||
```
|
||||
|
||||
@@ -347,29 +366,16 @@ head -20 doc/database/backup/ccdi_structure.sql
|
||||
- 安装 MySQL 客户端工具
|
||||
- 或使用完整路径:`/usr/bin/mysqldump`
|
||||
|
||||
### 2. 配置文件不存在
|
||||
### 2. 数据库连接失败
|
||||
|
||||
**错误信息**: `配置文件不存在: db_config.conf`
|
||||
**错误信息**: 连接被拒绝或认证失败
|
||||
|
||||
**解决**:
|
||||
```bash
|
||||
cp db_config.conf.template db_config.conf
|
||||
# 编辑 db_config.conf 填写实际配置
|
||||
```
|
||||
|
||||
### 3. 连接数据库失败
|
||||
|
||||
**可能原因**:
|
||||
- 数据库地址、端口、用户名或密码错误
|
||||
- 防火墙阻止连接
|
||||
- 数据库服务未启动
|
||||
|
||||
**解决**:
|
||||
- 检查配置文件中的连接信息
|
||||
- 检查脚本顶部的数据库配置是否正确
|
||||
- 使用 mysql 命令手动测试连接
|
||||
- 检查防火墙规则
|
||||
|
||||
### 4. 导入时字符集乱码
|
||||
### 3. 导入时字符集乱码
|
||||
|
||||
**原因**: 未正确指定字符集
|
||||
|
||||
@@ -421,9 +427,9 @@ cp db_config.conf.template db_config.conf
|
||||
## 注意事项
|
||||
|
||||
1. **安全性**:
|
||||
- `db_config.conf` 包含敏感信息,已添加到 `.gitignore`
|
||||
- 不要将配置文件提交到版本控制系统
|
||||
- 迁移完成后建议删除配置文件中的密码
|
||||
- 数据库配置已内置在脚本中,包含敏感信息
|
||||
- 不要将脚本提交到公开的版本控制系统
|
||||
- 迁移完成后建议删除脚本中的密码或使用占位符
|
||||
|
||||
2. **性能**:
|
||||
- 大数据库导出/导入可能需要较长时间
|
||||
@@ -439,6 +445,11 @@ cp db_config.conf.template db_config.conf
|
||||
- 验证阶段重点检查中文数据
|
||||
- 表结构文件不再包含显式的 COLLATE 配置(使用默认 utf8mb4_general_ci)
|
||||
|
||||
5. **脚本配置**:
|
||||
- 首次使用前必须在脚本顶部配置数据库信息
|
||||
- 三个环境的配置是独立的,可以只配置需要的环境
|
||||
- 修改配置后无需其他操作即可使用
|
||||
|
||||
## 技术支持
|
||||
|
||||
如遇到问题:
|
||||
@@ -449,10 +460,8 @@ cp db_config.conf.template db_config.conf
|
||||
|
||||
## 相关文件
|
||||
|
||||
- 导出脚本: `export_database.sh`
|
||||
- 导入脚本: `import_database.sh`
|
||||
- 配置模板: `db_config.conf.template`
|
||||
- 实际配置: `db_config.conf`
|
||||
- 导出脚本: `export_database.sh`(配置已内置)
|
||||
- 导入脚本: `import_database.sh`(配置已内置)
|
||||
- 表结构文件: `doc/database/backup/ccdi_structure.sql`
|
||||
- 数据文件: `doc/database/backup/ccdi_data.sql`
|
||||
- 排序规则修改脚本: `doc/database/alter_collation_to_general_ci.sql`
|
||||
|
||||
Reference in New Issue
Block a user