MySQL8.0_mysqldump_迁移手册_V1.0

发布时间:2026/7/11 10:01:07

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/7/11 15:54:05

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

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

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

2026/7/9 22:16:47

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

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

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

2026/7/11 9:44:43

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

Vortex模组管理器终极指南:5分钟掌握250+游戏模组管理

Vortex模组管理器终极指南:5分钟掌握250+游戏模组管理

2026/7/11 21:03:33

Vortex模组管理器终极指南:5分钟掌握250游戏模组管理 【免费下载链接】Vortex Vortex Development 项目地址: https://gitcode.com/gh_mirrors/vor/Vortex Vortex是Nexus Mods官方推出的开源游戏模组管理器,专为游戏模组爱好者设计的全能管理工具…

Tkinter库的学习记录13-OptionMenu与Combobox

Tkinter库的学习记录13-OptionMenu与Combobox

2026/7/11 21:03:33

13、OptionMenu与Combobox13-1 下拉式列表OptionMenuOptionMenu可以翻译为下拉式列表,用户可以从中选择一项,它的构造方法如下。OptionMenu(父对象, options, *value)其中,*value是一系列下拉列表,本节将通过实例进行讲解。13-1-1…

做 OPC 最怕的不是没工具,而是客户不继续聊

做 OPC 最怕的不是没工具,而是客户不继续聊

2026/7/11 21:03:33

做 OPC 的人,最开始通常不会觉得自己缺工具。现在 AI 工具太多了,写文案、做方案、整理表格、生成图片、做简历分析,几乎每隔几天就有新的平台和新的玩法出现。很多人刚开始很有信心,觉得自己只要把工具学会,再包装一下…

【Android 控件】TextView 中设置文字间隔及颜色渐变效果

【Android 控件】TextView 中设置文字间隔及颜色渐变效果

2026/7/11 21:03:33

1、xml 设置字间距 letterSpacing:控制字符水平间距,默认无字间距,正数:文字拉开距离(常用 0.05~0.15);负数:文字挤在一起(重叠);单位 em&#xf…

ADS131M02与STM32F405RG精密数据采集方案详解

ADS131M02与STM32F405RG精密数据采集方案详解

2026/7/11 21:03:33

1. 为什么选择ADS131M02与STM32F405RG组合在工业测量和精密数据采集领域,模数转换器(ADC)的性能往往决定了整个系统的精度上限。ADS131M02作为TI推出的24位Δ-Σ ADC,具有以下核心优势:真正差分输入结构,有效抑制共模噪声可编程数…

HarmonyOS 6.1 跨端实战:用ArkUI-X把电商App同时跑在Android/iOS上

HarmonyOS 6.1 跨端实战:用ArkUI-X把电商App同时跑在Android/iOS上

2026/7/11 20:53:33

上篇讲完性能优化,后台收到最多的问题是:“我写的鸿蒙电商App,能不能直接跑到安卓和苹果手机上?” 毕竟现在多端适配是刚需,总不能为了覆盖全用户写三套代码。今天就用ArkUI-X把之前打磨好的电商Demo跨端跑通&#xff…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/10 22:32:48

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/11 19:21:29

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/10 6:57:56

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

WechatDecrypt技术解析:深入理解微信数据库AES-256-CBC解密机制

WechatDecrypt技术解析:深入理解微信数据库AES-256-CBC解密机制

2026/7/11 0:02:03

WechatDecrypt技术解析:深入理解微信数据库AES-256-CBC解密机制 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 在数字隐私日益重要的今天,微信聊天记录作为个人数字资产的重要组成…

5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符]

5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符]

2026/7/11 0:02:03

5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载…

PostgreSQL 备份与恢复实战:从 pg_dump 到时间点恢复的生产级方案

PostgreSQL 备份与恢复实战:从 pg_dump 到时间点恢复的生产级方案

2026/7/11 0:02:03

PostgreSQL 备份与恢复实战:从 pg_dump 到时间点恢复的生产级方案 一、数据库备份最容易被忽略的问题,不是「有没有做备份」,而是「备份能不能恢复、恢复要多久、以及恢复后的数据对不对」 很多团队做数据库备份的方式是「写个 cron job&am…