Files
ccdi/docs/reports/implementation/2026-03-27-mysql-3306-to-3307-full-migration-record.md

2.6 KiB
Raw Blame History

MySQL 3306 到 3307 全量迁移实施记录

实施背景

  • 迁移时间2026-03-27
  • 源库:116.62.17.81:3306/ccdi
  • 目标库:116.62.17.81:3307/ccdi
  • 源库版本:5.7.44
  • 目标库版本:8.0.18
  • 目标:将当前 ccdi 数据库的表结构、索引、触发器、存储过程/函数、事件与业务数据整体迁移到 MySQL 8.0 实例

实施内容

  1. 读取项目配置,确认源库连接为 root / Kfcx@1234,数据库名为 ccdi
  2. 连通性探测目标实例 116.62.17.81:3307,确认可连接且初始不存在 ccdi 库。
  3. 使用 mysqldump 从源库导出整库:
export MYSQL_PWD='Kfcx@1234'
/usr/local/mysql-9.6.0-macos15-arm64/bin/mysqldump \
  -h 116.62.17.81 -P 3306 -u root \
  --default-character-set=utf8mb4 \
  --single-transaction \
  --skip-lock-tables \
  --set-gtid-purged=OFF \
  --routines --events --triggers \
  --hex-blob \
  --databases ccdi > /tmp/ccdi_full_20260327_145429.sql
  1. 在目标实例创建 ccdi 数据库并执行导入:
export MYSQL_PWD='Kfcx@1234'
mysql -h 116.62.17.81 -P 3307 -u root \
  -e "CREATE DATABASE IF NOT EXISTS ccdi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

mysql -h 116.62.17.81 -P 3307 -u root \
  --default-character-set=utf8mb4 \
  --init-command="SET NAMES utf8mb4" \
  < /tmp/ccdi_full_20260327_145429.sql
  1. 导入完成后,对源库与目标库执行逐表 COUNT(*) 校验,并比对摘要文件哈希。
  2. 校验通过后,删除本地临时导出文件 /tmp/ccdi_full_20260327_145429.sql

核验结果

结构核验

  • 源库默认字符集/排序规则:utf8mb4 / utf8mb4_general_ci
  • 目标库默认字符集/排序规则:utf8mb4 / utf8mb4_unicode_ci
  • 源库基础表数量:51
  • 目标库基础表数量:51
  • 源库触发器数量:0
  • 目标库触发器数量:0
  • 源库存储过程/函数数量:0
  • 目标库存储过程/函数数量:0
  • 源库事件数量:0
  • 目标库事件数量:0

数据核验

  • 逐表 COUNT(*) 摘要文件 SHA1
    • 源库:12873559982afd95e7cdf55f57447b4a58041d89
    • 目标库:12873559982afd95e7cdf55f57447b4a58041d89
  • 逐表行数比对结果:一致,无差异
  • 汇总总行数:103837

重点大表抽样

  • ccdi_bank_statement68343
  • ccdi_bank_statement_tag_result18931
  • ccdi_staff_recruitment6001
  • ccdi_staff_fmy_relation2014
  • ccdi_purchase_transaction2004

结论

  • 116.62.17.81:3307/ccdi 已完成从 116.62.17.81:3306/ccdi 的整库迁移。
  • 表结构与数据量校验通过,可作为 MySQL 8.0 的目标库继续使用。