Files
happy-life-star/MYSQL_MIGRATION_STATUS.md
T
peanut 48df1d68d7 🎉 完成情感博物馆单体架构迁移和数据库集成
 主要完成内容:
- 完整的微服务到单体架构迁移
- 数据库实体类和服务层实现
- 用户认证和管理功能
- AI对话功能集成
- WebSocket实时通信
- 情绪记录管理
- 数据库初始化脚本
- 生产环境部署配置

🏗️ 技术栈:
- Spring Boot 2.7.18 单体架构
- MySQL数据库集成
- JWT认证机制
- WebSocket支持
- Coze AI API集成
- 完整的REST API接口

📊 性能优化:
- 内存使用降低82% (2GB → 363MB)
- 启动时间缩短83% (5分钟 → 30秒)
- 服务数量减少90% (10个 → 1个)
- 部署复杂度大幅简化

🌐 API接口:
- 26个REST API接口
- 3个WebSocket端点
- 完整的CRUD操作
- 数据库读写功能

🚀 部署状态:
- 服务器: 47.111.10.27:8080
- 数据库: emotion (MySQL)
- 前端: http://47.111.10.27/emotion/happy/
- 健康检查: /api/health
2025-07-22 20:29:29 +08:00

4.1 KiB

🗄️ MySQL迁移状态报告

📋 当前状态

已完成的工作

  1. Docker MySQL停止: emotion-mysql容器已停止并删除
  2. 数据备份: 多个备份已创建在 /data/backups/
  3. MySQL二进制包: 已解压到 /usr/local/mysql
  4. 配置文件: /etc/my.cnf 已创建
  5. 用户和权限: mysql用户已创建
  6. 符号链接: MySQL命令已链接到系统路径

⚠️ 遇到的问题

  1. 版本兼容性: 数据目录由MySQL 8.0.42创建,但安装包是8.0.24,不支持降级
  2. SSH连接不稳定: 长时间操作时连接中断
  3. 数据目录初始化: 需要完全清空才能重新初始化

🔧 当前需要解决的问题

  1. MySQL服务未启动: 端口3306未监听
  2. 数据库连接失败: 无法连接到MySQL
  3. 数据恢复: 需要从备份恢复emotion_museum数据库

📂 重要文件位置

备份文件

/data/backups/mysql_20250721_172322/          # 第一次备份(包含SQL导出)
/data/backups/mysql_20250721_172647/          # 第二次备份
/data/backups/mysql_data_20250721_173734/     # 数据文件备份
/data/backups/mysql_binary_20250721_174905/   # 二进制安装前备份
/data/backups/mysql_reinit_20250721_184151/   # 重新初始化前备份

安装文件

/usr/local/mysql/                             # MySQL安装目录
/data/programs/mysql/                         # MySQL数据目录
/etc/my.cnf                                   # MySQL配置文件
/var/log/mysqld.log                           # MySQL日志文件

🛠️ 手动完成MySQL安装的步骤

步骤1: 完成MySQL初始化

# SSH连接到服务器
ssh root@47.111.10.27

# 停止所有MySQL进程
pkill -f mysqld 2>/dev/null || true

# 完全清空数据目录
rm -rf /data/programs/mysql/*
rm -rf /data/programs/mysql/.* 2>/dev/null || true

# 重新初始化MySQL
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/programs/mysql

# 启动MySQL
nohup /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql > /var/log/mysqld.log 2>&1 &

# 等待启动
sleep 20

步骤2: 设置密码和创建数据库

# 设置密码和权限
/usr/local/mysql/bin/mysql -u root << 'EOF'
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'EmotionMuseum2025*#';
CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'EmotionMuseum2025*#';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
CREATE USER IF NOT EXISTS 'emotion'@'localhost' IDENTIFIED WITH mysql_native_password BY 'EmotionDB2024!';
CREATE USER IF NOT EXISTS 'emotion'@'%' IDENTIFIED WITH mysql_native_password BY 'EmotionDB2024!';
CREATE DATABASE IF NOT EXISTS emotion_museum CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON emotion_museum.* TO 'emotion'@'localhost';
GRANT ALL PRIVILEGES ON emotion_museum.* TO 'emotion'@'%';
FLUSH PRIVILEGES;
EOF

步骤3: 恢复数据

# 找到最新的SQL备份
ls -la /data/backups/mysql_*/all_databases.sql

# 恢复数据(使用最新的备份)
/usr/local/mysql/bin/mysql -u root -p'EmotionMuseum2025*#' < /data/backups/mysql_20250721_172322/all_databases.sql

步骤4: 验证安装

# 验证连接
/usr/local/mysql/bin/mysql -u root -p'EmotionMuseum2025*#' -e 'SHOW DATABASES;'

# 检查emotion_museum数据库
/usr/local/mysql/bin/mysql -u root -p'EmotionMuseum2025*#' -e 'USE emotion_museum; SHOW TABLES;'

# 检查用户数据
/usr/local/mysql/bin/mysql -u root -p'EmotionMuseum2025*#' -e 'USE emotion_museum; SELECT COUNT(*) FROM user;'

📋 连接信息

MySQL连接参数

  • 主机: localhost 或 47.111.10.27
  • 端口: 3306
  • root密码: EmotionMuseum2025*#
  • emotion密码: EmotionDB2024!
  • 数据库: emotion_museum

🚀 下一步行动

  1. 完成MySQL初始化: 按照上述步骤手动完成
  2. 恢复数据: 从备份文件恢复数据库
  3. 验证连接: 确保MySQL正常工作
  4. 重启微服务: 测试后端服务的数据库连接