82 lines
2.6 KiB
Markdown
82 lines
2.6 KiB
Markdown
|
|
# 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` 从源库导出整库:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
4. 在目标实例创建 `ccdi` 数据库并执行导入:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
5. 导入完成后,对源库与目标库执行逐表 `COUNT(*)` 校验,并比对摘要文件哈希。
|
|||
|
|
6. 校验通过后,删除本地临时导出文件 `/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_statement`:`68343`
|
|||
|
|
- `ccdi_bank_statement_tag_result`:`18931`
|
|||
|
|
- `ccdi_staff_recruitment`:`6001`
|
|||
|
|
- `ccdi_staff_fmy_relation`:`2014`
|
|||
|
|
- `ccdi_purchase_transaction`:`2004`
|
|||
|
|
|
|||
|
|
## 结论
|
|||
|
|
|
|||
|
|
- `116.62.17.81:3307/ccdi` 已完成从 `116.62.17.81:3306/ccdi` 的整库迁移。
|
|||
|
|
- 表结构与数据量校验通过,可作为 MySQL 8.0 的目标库继续使用。
|