MySQL从自建服务器迁移到云数据库如何操作?

秋枫姑娘_8217

秋枫姑娘_8217

2026-08-24

882人浏览

原创

mysqldump适合小库(

mysql从自建服务器迁移到云数据库如何操作?

mysqldump 适合小库,但别直接在生产库上跑

如果你的自建 MySQL 数据库不到 10GB,且能接受数小时停机,mysqldump 是最快上手的方式。但它不是“一键迁移”,而是要绕开几个典型陷阱:

  • mysqldump --single-transaction 只对 InnoDB 有效;如果库中有 MyISAM 表,会隐式加全局锁(FLUSH TABLES WITH READ LOCK),导致写入阻塞
  • 默认不导出存储过程、触发器和事件,必须显式加 --routines --triggers --events
  • 如果源库启用了 lower_case_table_names=0(Linux 默认),而云数据库强制 =1(如阿里云 RDS MySQL 8.0),表名大小写会被强制转换,后续 SELECT 或 JOIN 可能报错
  • 导出文件里带 CREATE DATABASE 语句,但云数据库通常不允许用户执行该语句;需手动删掉或改用 --no-create-db

示例命令(推荐):
mysqldump -h 127.0.0.1 -u root -p --single-transaction --routines --triggers --events --set-gtid-purged=OFF --databases myapp > myapp.sql

注意:--set-gtid-purged=OFF 是为了规避 GTID 冲突,尤其当目标云数据库已启用 GTID 时。

DTS 工具迁移时,权限和参数检查比操作本身更关键

云厂商提供的 DTS(如阿里云 DTS、腾讯云 NewDTS)本质是封装了 binlog 解析 + 增量同步的管道,但失败往往卡在前置条件。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • 源库账号至少要有:REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、SELECT;如果做全量校验,还需 LOCK TABLES(意味着短时锁表)
  • 目标云数据库的 lower_case_table_names 必须与源库一致,否则 DTS 校验阶段直接报错退出,不会继续
  • 若源库 MySQL 版本是 5.6,目标选了 8.0,DTS 会拒绝创建任务——它不自动处理语法兼容性(比如 GROUP BY 严格模式变更)
  • 云数据库实例的磁盘空间必须 ≥ 源库实际占用空间 × 1.3(预留日志、临时排序、校验缓存)

特别提醒:DTS 迁移任务启动后,源库 binlog format 必须为 MIXED 或 ROW;STATEMENT 模式下某些函数(如 NOW()、UUID())会导致主从数据不一致,DTS 同步也会出错。

迁移后数据一致性验证不能只看行数

行数一致 ≠ 数据一致。常见脱节点:

  • 时间字段精度丢失:源库是 DATETIME(6),目标云数据库默认只支持 DATETIME(0),没显式指定 --skip-tz-utc 或调整时区配置,会导致时间偏移
  • 字符集隐式转换:utf8mb4_unicode_ci 和 utf8mb4_0900_as_cs 在排序行为上不同,ORDER BY 结果可能变,但 COUNT(*) 不体现
  • 外键约束未启用:云数据库默认关闭 FOREIGN_KEY_CHECKS,导入后若没手动开,INSERT 不校验外键,脏数据悄然入库

建议验证方式:

  • 抽样对比:对高频更新表(如订单表),取最新 100 条按主键查,逐字段比对
  • 使用 pt-table-checksum(Percona Toolkit)跑一次校验,它能穿透复制延迟,定位到具体库/表/行
  • 检查 information_schema.TABLES 中 DATA_LENGTH + INDEX_LENGTH 是否与源库偏差

应用切换前必须改三处配置,漏一不可

不是改完数据库连接地址就完事。

  • 应用配置里的 max_connections 要重设:云数据库连接数限制通常比自建低(如 RDS 通用型实例默认 2000),而旧应用可能设了 5000,启动即连不上
  • JDBC URL 加 ?useSSL=false&serverTimezone=Asia/Shanghai:云数据库默认强制 SSL,不加 useSSL=false 会握手失败;时区不显式声明,Java Timestamp 可能差 8 小时
  • 连接池(如 HikariCP)的 connection-test-query 得换成 SELECT 1:部分云数据库不支持 SELECT 1; 以外的测试语句,旧配置用 SELECT NOW() 会导致连接池反复重建

最易被忽略的是 DNS 缓存:Kubernetes 或本地 hosts 绑定的旧 IP,在切流后仍可能被复用。务必确认应用重启后,nslookup your-rds-endpoint 返回的是云厂商分配的真实域名,而非缓存的旧地址。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

709

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2176

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4012

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 172人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 275人学习