文章内容
2025/11/23 19:05:00,作 者: 黄兵
MySQL 8.0 远程迁移
最近腾讯云的轻量数据库到期了,重新购买了一台规格更小的数据库,准备做迁移。
将详细的迁移过程记录,以方便以后的相同迁移操作。
⭐ 推荐迁移方式:逻辑备份 → 导入(mysqldump)
这是最通用、无版本兼容风险的方法。
✔️ 步骤 1:从旧库导出 .sql 文件
在你的服务器、本地机 或 云主机执行:
mysqldump -h hk-cynosdbmysql-grp-s.sql.tencentcdb.com \ -P 21273 \ -u your_user \ -p \ --set-gtid-purged=OFF \ --single-transaction \ --routines \ --triggers \ cloud_product > backup.sql
参数说明:
-
--single-transaction➜ 导出时不会锁表 -
--set-gtid-purged=OFF➜ 避免不同云供应商的 GTID 冲突(MySQL 8 必须加) -
--routines/--triggers➜ 确保函数、触发器全部迁移
✔️ 步骤 2:将数据导入新库
确定你已经创建:
-
新数据库:
rewrite_cloud_sms_production -
新数据库用户:并赋予
ALL PRIVILEGES(至少 SELECT/INSERT/UPDATE/CREATE/ALTER)
然后执行导入:
mysql -h hk-cdb-8.sql.tencentcdb.com \ -P 25382 \ -u your_new_user \ -p \ cloud_product < backup.sql
✔️ 步骤 3:验证迁移结果
登录新库:
mysql -h hk-cdb-8.sql.tencentcdb.com -P 282 -u your_new_user -p
检查:
USE cloud_sms_product; SHOW TABLES; SELECT COUNT(*) FROM some_table;
确认数据一致即可。
✔️ 注意事项(必须看)
① 两个数据库都在腾讯云,但不同实例 → 一定要使用逻辑备份
不要使用物理复制或 xtrabackup,会有 GTID / innodb 版本问题。
② 如果表非常大(>50GB)
可以加上 --compress
mysqldump --compress ...
③ 如果你没有开放外网白名单
需要将执行迁移的服务器加入“允许访问 IP”。
其它相关推荐:
评论列表