mysqldump适合小库(<10GB)且可接受数小时停机的场景,但需规避陷阱:InnoDB才支持--single-transaction,MyISAM会全局锁表;必须显式加--routines --triggers --events导出存储对象;注意lower_case_table_names和GTID兼容性;云环境需禁用CREATE DATABASE并校验字符集、时区、外键等一致性。
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、腾讯云 NewDTS)本质是封装了 binlog 解析 + 增量同步的管道,但失败往往卡在前置条件。
REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、SELECT;如果做全量校验,还需 LOCK TABLES(意味着短时锁表)lower_case_table_names 必须与源库一致,否则 DTS 校验阶段直接报错退出,不会继续GROUP BY 严格模式变更)特别提醒: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 不校验外键,脏数据悄然入库建议验证方式:
pt-table-checksum(Percona Toolkit)跑一次校验,它能穿透复制延迟,定位到具体库/表/行information_schema.TABLES 中 DATA_LENGTH + INDEX_LENGTH 是否与源库偏差 < 5%不是改完数据库连接地址就完事。
max_connections 要重设:云数据库连接数限制通常比自建低(如 RDS 通用型实例默认 2000),而旧应用可能设了 5000,启动即连不上?useSSL=false&serverTimezone=Asia/Shanghai:云数据库默认强制 SSL,不加 useSSL=false 会握手失败;时区不显式声明,Java Timestamp 可能差 8 小时connection-test-query 得换成 SELECT 1:部分云数据库不支持 SELECT 1; 以外的测试语句,旧配置用 SELECT NOW() 会导致连接池反复重建最易被忽略的是 DNS 缓存:Kubernetes 或本地 hosts 绑定的旧 IP,在切流后仍可能被复用。务必确认应用重启后,nslookup your-rds-endpoint 返回的是云厂商分配的真实域名,而非缓存的旧地址。
Tplink企业版路由器WiFi名称的默认设置介绍(Tplink企业版路由器WiFi名称的默认设置是什么)
Tplink路由器灯常亮无法上网的原因分析(如何解决Tplink路由器灯常亮无法上网的问题)
Tplink千兆企业级路由器自动重启的作用和优势介绍(如何设置Tplink千兆企业级路由器自动重启功能)
一根天线的tplink路由器有哪些(一根天线的Tplink路由器的特点和优势介绍)
tplink路由器外网访问不了nas(Tplink路由器外网访问NAS的原因分析)
Tplink无法搜到路由器的原因分析(如何解决Tplink无法搜到路由器的问题)