# 🗄️ 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初始化 ```bash # 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: 设置密码和创建数据库 ```bash # 设置密码和权限 /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: 恢复数据 ```bash # 找到最新的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: 验证安装 ```bash # 验证连接 /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. **重启微服务**: 测试后端服务的数据库连接