MySQL8.0_mysqldump_迁移手册_V1.0

发布时间:2026/9/22 17:41:25

MySQL8.0_mysqldump_迁移手册_V1.0
1.整体规划1.1迁移涉及的对象源库源表目标库目标表192.168.1.12/192.168.1.55/56/57/58/59/source_dbxxxxxxtarget_dbxxxxxxxx1.2使用工具工具名称备份路径mysqldump软件/backup/mysql以上目录也可以根据实际情况去调整1.3导出导入专用用户创建用户mysqlselect host,user from mysql.user;create user dump_datalocalhostidentified by 密码;create user load_datalocalhost identified by 密码;select host,user from mysql.user;--导出用户GRANT SELECT,SHOW DATABASES,show view,RELOAD,LOCK TABLES,TRIGGER,EVENT,REPLICATION CLIENT,PROCESSON *.* TOdump_datalocalhost;如果只需备份特定数据库如 mydb将 *.* 改为 mydb.*-- 如果你使用的是 MySQL 8.0.14 或更高版本并且需要执行mysqldump --master-data2那么确实需要 BINLOG_ADMIN用于执行 SHOW MASTER STATUS。-- MySQL 8.0.14 不支持 BINLOG_ADMIN此时用 REPLICATION CLIENT 即可。-- BINLOG_ADMIN 是动态权限不能和其他权限写在同一句 GRANT 中。动态权限总是作用于 *.*全局不能限定到特定数据库。GRANT BINLOG_ADMIN ON *.* TO dump_datalocalhost;--导入用户GRANTSELECT, INSERT, UPDATE, DELETE,CREATE, DROP, ALTER, INDEX,REFERENCES,LOCK TABLES,REPLICATION CLIENTON *.* TO load_datalocalhost;-- 补充权限导入普通表不需要GRANTCREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,EXECUTE,RELOADON *.* TO load_datalocalhost;grant SYSTEM_VARIABLES_ADMIN on *.* toload_datalocalhost;-- SYSTEM_VARIABLES_ADMIN 是 MySQL 8.0 引入的一个精细权限dynamic privilege用于控制用户是否可以动态修改全局系统变量即通过 SET GLOBAL 或 SET PERSIST 等语句。动态权限总是作用于 *.*全局不能限定到特定数据库。!!!注意在 MySQL 8.0 中SUPER 权限也包含此能力但官方推荐使用更细粒度的动态权限如 SYSTEM_VARIABLES_ADMIN替代 SUPER。--能力SUPERSYSTEM_VARIABLES_ADMIN修改全局变量✅✅终止任意会话✅❌需 CONNECTION_ADMIN切换复制角色✅❌忽略只读模式✅❌更细粒度控制❌✅推荐!!!最佳实践在 MySQL 8.0 中避免使用 SUPER改用组合动态权限principle of least privilege。-- 权限用途CONNECTION_ADMIN终止连接、查看所有会话ROLE_ADMIN管理角色BACKUP_ADMIN执行 LOCK INSTANCE FOR BACKUPSESSION_VARIABLES_ADMIN修改会话级变量通常不需要普通用户默认可改自己会话!!!安全建议不要随意授予 SYSTEM_VARIABLES_ADMIN因为恶意用户可通过修改变量破坏系统如 max_connections1 拒绝服务。对于只读账号、应用账号绝对不要授予此权限。运维账号可按需分配配合其他动态权限如 CONNECTION_ADMIN。SET GLOBAL variable_name value;SET PERSIST variable_name value;SET PERSIST_ONLY variable_name value;-- 验证SHOW GRANTS FOR dump_datalocalhost;SHOW GRANTS FOR load_datalocalhost;-- 刷新权限FLUSH PRIVILEGES;-- 权限是否必需用途SELECT✅ 必需读取表和视图数据也用于读取 routines 元数据LOCK TABLES✅ 必需MyISAM表锁保证一致性SHOW VIEW✅ 必需导出视图定义CREATE VIEWTRIGGER✅ 必需导出触发器EVENT✅ 必需导出事件调度器RELOAD✅ 必需执行 FLUSH TABLES用于一致性快照REPLICATION CLIENT!!!按需如果使用 --master-data 获取 binlog 位置PROCESS❌ 通常不需要查看线程列表mysqldump 不依赖SHOW DATABASES❌ 通常不需要当你明确指定数据库名时不需要--权限用途INSERT插入数据CREATE创建表恢复结构DROP删除旧表如果 dump 含 DROPALTER修改表结构INDEX创建索引REFERENCES外键约束通常不需要但安全起见可加!!!不要授予 SUPER、FILE除非用 LOAD DATA INFILE、SHUTDOWN 等危险权限。2.迁移过程2.1Mysqldump导出$(mysql)mysqldump -udump_data-p\--single-transaction\--flush-logs\--set-gtid-purgedOFF \mydb table1 table2 table3 multi_tables.sql--single-transactionInnoDB 一致性备份不锁表--lock-tablesfalse跳过锁表配合 --single-transaction 使用--routines同时导出存储过程和函数--triggers导出触发器默认已包含--set-gtid-purgedOFF避免 GTID 冲突主从环境注意--databases db1 db2备份多个指定数据库输出含 CREATE DATABASE 和 USE--all-databases, -A备份所有数据库等价于 --databases mysql sys ...--ignore-tabledb.table跳过指定表可多次使用--tables显式指定表列表默认行为--single-transactionInnoDB 推荐 启动一个事务保证一致性快照不锁表--lock-tables, -l备份前锁所有表MyISAM 必需默认开启--lock-all-tables, -x全局读锁所有库所有表比 --lock-tables 更强--flush-logs备份前刷新 binlog配合主从/ PITR--master-data[1|2]在输出中加入 CHANGE MASTER TO 语句• 1可执行语句• 2注释形式推荐--no-create-info, -t只导出数据不导出 CREATE TABLE--no-data, -d只导出表结构不导出数据--skip-triggers不导出触发器默认导出--routines, -R导出存储过程和函数--events, -E导出事件调度器--skip-comments去掉注释如 -- Dump completed on ...--skip-add-drop-table不生成 DROP TABLE IF EXISTS默认生成--add-locks在 INSERT 前后加 LOCK TABLES / UNLOCK TABLES默认开启--complete-insert, -c使用列名的完整 INSERT 语句便于调试--compatiblename生成兼容其他数据库的 SQL如 ansi, postgresql--set-gtid-purgedOFF主从环境必备 避免 GTID 冲突可选值ON, OFF, AUTO--set-gtid-purgedOFF 是 MySQL 5.6启用 GTID 模式后 使用 mysqldump 时的一个关键参数用于控制是否在备份文件中包含 GTID_PURGED 信息。什么是 GTIDGTIDGlobal Transaction Identifier 是 MySQL 主从复制中用于唯一标识事务的全局 ID。启用 GTID 后每个事务都有一个唯一的 source_id:transaction_id。从库通过 GTID 自动定位需要同步的位置无需手动指定 binlog 文件和位置。--set-gtid-purged 参数的作用该参数决定 mysqldump 是否在输出 SQL 文件中加入如下语句SET GLOBAL.GTID_PURGEDaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:1-100;这个语句的作用是告诉目标 MySQL 实例“这些 GTID 已经被应用过”避免重复执行。--值行为适用场景AUTO默认如果启用了 GTID 且导出的是全库或部分库则自动添加 SET GTID_PURGED如果是单表则不加一般使用但可能引发问题ON强制添加 SET GTID_PURGED需要保留 GTID 信息如主从重建OFF完全不添加 SET GTID_PURGED 语句✅大多数备份/迁移场景推荐--场景推荐值日常备份、开发测试、跨环境迁移✅--set-gtid-purgedOFF重建从库、主从故障恢复--set-gtid-purgedON不确定✅默认用 OFF 更安全!!!最佳实践除非你明确需要 GTID 信息用于主从复制否则一律使用 --set-gtid-purgedOFF。注意修改multi_tables.sql里面的gtid和binlog点位2.2Rename源表Rename源表防止误操作mysqlshow tables;RENAMETABLE old_table_nameTOnew_table_name;show tables2.3Mysql导入$(mysql)mysql -uload_data-pmydb multi_tables.sql2.4创建业务用户$(mysql)select host,user from mysql.user;create user app_user192.168.126.% identified by 密码;create user app_user_read192.168.126.% identified by 密码;select host,user from mysql.user;-- 1045方案1修改用户使用旧插件兼容性更好ALTER USER app_user192.168.126.% IDENTIFIED WITH mysql_native_password BY 密码;-- 1045方案2升级应用的 MySQL 驱动到 8.0-- 1044报错排查-- 查当前用户SELECT USER(), CURRENT_USER();-- 用 root 执行CREATE DATABASE IF NOT EXISTSmydbCHARACTER SET utf8mb4COLLATE utf8mb4_unicode_ci;GRANT USAGE ON *.* TOapp_user192.168.126.%;GRANT select ON *.* TOapp_user192.168.126.%;GRANT ALL PRIVILEGES ON mydb.* TO app_user192.168.126.%;FLUSH PRIVILEGES;SHOW GRANTS FORapp_user192.168.126.%;-- 1044报错排查GRANT select ON *.* TOapp_user_read192.168.126.%;FLUSH PRIVILEGES;SHOW GRANTS FORapp_user_read192.168.126.%;3.回退3.1在源库rename表mysqlRENAMETABLE old_table_nameTOnew_table_name;3.2锁定目的库业务用户$(mysql)-- 锁定用户 app_user 从任何主机的连接ALTER USERapp_user192.168.126.%ACCOUNTLOCK;FLUSH PRIVILEGES;SELECT User, Host, account_locked FROM mysql.user WHERE User app_user;-- 查看连接SELECTUSER,Host, db, Command,COUNT(*) AS connectionsFROMinformation_schema.processlistGROUP BYUSER,Host, db, CommandORDER BYconnections DESC;-- 只想看真实客户端用户排除复制 I/O 或 SQL 线程排除系统用户如 system user用于复制SELECTUSER,Host, db, Command,COUNT(*) AS connectionsFROMinformation_schema.processlistWHEREUSER NOT IN (system user, event_scheduler)GROUP BYUSER,Host, db, CommandORDER BYconnections DESC;-- 解锁ALTER USER app_user192.168.126.% ACCOUNTUNLOCK;FLUSH PRIVILEGES;SELECT User, Host, account_locked FROM mysql.user WHERE User app_user;

相关新闻

30+程序员转型大模型:学习路径与实战指南

30+程序员转型大模型:学习路径与实战指南

2026/9/22 5:20:55

1. 为什么30程序员需要关注大模型转型大模型技术正在重塑整个IT行业的就业格局。根据2024年行业薪酬报告显示,具备大模型开发能力的工程师平均薪资比传统开发岗位高出40%-60%。这个差距在头部企业更为明显,部分AIGC工程师的年薪包已经突破百万。对于30岁…

昇腾平台高效部署Qwen3.5 MoE多模态模型实战

昇腾平台高效部署Qwen3.5 MoE多模态模型实战

2026/9/8 13:52:15

1. 项目概述:昇腾平台极速适配Qwen3.5的技术突破在AI模型部署领域,华为昇腾平台与通义千问Qwen3.5的适配组合正在创造新的效率标杆。这次适配最引人注目的特点是实现了MoE(Mixture of Experts)架构多模态模型的端到端高效部署方案…

大模型技术实战:从架构选择到RLHF落地

大模型技术实战:从架构选择到RLHF落地

2026/9/8 23:27:34

1. 大模型技术浪潮下的职业突围指南去年我在硅谷参加一场技术峰会时,亲眼见证了GPT-4演示现场的火爆场面——排队体验的队伍绕场三周,这种狂热程度让我意识到:大模型技术正在重塑整个科技行业的就业版图。作为经历过三次技术浪潮(…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/21 18:38:46

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/21 18:41:09

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/21 18:36:40

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/21 18:37:26

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/21 18:40:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/21 18:36:17

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/22 0:19:28

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/21 23:38:13

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/22 0:48:53

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…