news 2026/7/14 21:18:20

mysqldump 备份恢复,从单库到全库恢复实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mysqldump 备份恢复,从单库到全库恢复实操

一、恢复前的准备工作

在执行恢复操作前,务必做好以下检查,避免数据丢失或恢复失败:

  1. 确认目标 MySQL 服务正常运行(systemctl status mysqld);
  2. 验证备份文件的有效性:可通过cat 备份文件.sql | head -20查看是否有正常的 SQL 语句(如CREATE DATABASEINSERT);
  3. 恢复前建议备份当前数据库(避免覆盖错误),生产环境优先在测试库验证后再操作;
  4. 确保执行恢复的 MySQL 用户有CREATEINSERTALTER等权限(推荐用 root 用户)。

二、基础恢复语法

mysqldump生成的备份文件本质是 SQL 脚本,恢复核心是通过mysql命令执行该脚本,基础语法:

mysql[连接参数][目标库名]<备份文件路径/文件名.sql

核心连接参数和mysqldump一致:-u(用户名)、-p(密码)、-h(远程IP)、-P(端口)。

三、不同场景的恢复实操

1. 恢复单库备份(最常用)

适用于用mysqldump -u -p 单库名 > 备份文件.sql生成的备份文件。

场景1:目标库已存在(直接覆盖/追加数据)
# 恢复 test_db 库(需提前确保 test_db 库存在)mysql -uroot -p test_db</backup/mysql/test_db_20260113.sql

执行后输入 MySQL 密码,脚本会自动执行,将备份的表结构和数据导入test_db库。

场景2:目标库不存在(先建库再恢复)

如果删除了test_db库,需先创建空库再恢复:

# 1. 登录 MySQL 创建空库mysql -uroot -p -e"CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"# 2. 恢复数据到新建的库mysql -uroot -p test_db</backup/mysql/test_db_20260113.sql

2. 恢复多库备份

适用于用--databases参数备份的多库文件(包含CREATE DATABASE语句),无需提前建库:

# 恢复 test_db1、test_db2 多个库(备份文件已包含建库语句)mysql -uroot -p</backup/mysql/multi_db_20260113.sql

关键说明:多库备份文件里会有CREATE DATABASEUSE 库名语句,因此恢复时不需要指定具体库名,直接执行即可。

3. 恢复全库备份

适用于用-A/--all-databases备份的全库文件,恢复后会覆盖所有现有数据库(谨慎操作):

# 恢复所有数据库(包含系统库,生产环境需确认)mysql -uroot -p</backup/mysql/full_db_20260113.sql

注意:全库恢复会覆盖mysql系统库(包含用户、权限),如果是跨服务器恢复,建议先备份目标服务器的mysql库。

4. 恢复压缩的备份文件(.sql.gz)

生产环境常用gzip压缩备份,恢复时无需手动解压,可通过管道直接执行:

# 直接恢复 gzip 压缩的备份文件(单库)gzip-dc /backup/mysql/test_db_20260113.sql.gz|mysql -uroot -p test_db# 恢复压缩的全库备份gzip-dc /backup/mysql/full_db_20260113.sql.gz|mysql -uroot -p

参数解析:-dc表示解压并输出到标准输出,避免生成解压后的临时文件,节省磁盘空间。

5. 恢复指定表(精准恢复)

如果只需恢复备份文件中的某一张表(如test_db库的user表),可通过grep筛选 SQL 语句:

# 从单库备份中提取 user 表的结构和数据并恢复cat/backup/mysql/test_db_20260113.sql|grep-E"CREATE TABLE \`user\`|INSERT INTO \`user\`"|mysql -uroot -p test_db

或更精准的方式(先解压压缩包再筛选):

# 从压缩包中提取指定表gzip-dc /backup/mysql/test_db_20260113.sql.gz|grep-E"CREATE TABLE \`user\`|INSERT INTO \`user\`"|mysql -uroot -p test_db

四、恢复常见问题与避坑

  1. 字符集不一致:恢复后中文乱码,需确保备份和恢复时数据库字符集一致,可在mysql命令后加--default-character-set=utf8mb4
    mysql -uroot -p --default-character-set=utf8mb4 test_db<备份文件.sql
  2. 权限不足:提示Access denied,需给用户赋权:
    GRANTALLPRIVILEGESON*.*TO'用户名'@'localhost'IDENTIFIEDBY'密码';FLUSHPRIVILEGES;
  3. 表已存在:提示Table 'xxx' already exists,可先删除表再恢复(谨慎),或在备份文件中添加DROP TABLE IF EXISTS(备份时加--add-drop-table参数)。
  4. 远程恢复:恢复到远程 MySQL 服务器,需指定-h-P
    mysql -uroot -p -h192.168.1.100 -P3306 test_db</backup/mysql/test_db_20260113.sql
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 10:35:24

谷歌发布用于智能体购物的新协议标准

谷歌今天在全美零售联盟大会上宣布了一项名为通用商务协议&#xff08;UCP&#xff09;的全新开放标准&#xff0c;专门用于基于智能体的购物体验。该标准与Shopify、Etsy、Wayfair、Target和沃尔玛等公司联合开发&#xff0c;让智能体能够跨越客户购买流程的不同环节工作&…

作者头像 李华
网站建设 2026/7/14 19:21:32

Anthropic推出Claude医疗版AI,可安全接入健康记录

Anthropic成为最新一家宣布为其Claude平台推出新功能套件的人工智能公司&#xff0c;该功能让用户能够更好地理解自己的健康信息。Claude医疗版功能介绍在名为"Claude医疗版"的计划下&#xff0c;该公司表示&#xff0c;美国地区的Claude Pro和Max计划订阅用户可以选…

作者头像 李华
网站建设 2026/7/14 19:20:10

Anthropic推出Cowork通用办公智能体工具

Anthropic的智能体工具Claude Code在软件开发者和技术爱好者中大受欢迎&#xff0c;如今该公司将这一模式扩展到更广泛的办公工作领域&#xff0c;推出了名为Cowork的新功能。Cowork基于与Claude Code相同的技术基础&#xff0c;内置于macOS版Claude桌面应用中。该工具允许用户…

作者头像 李华
网站建设 2026/7/14 5:56:40

从“哭哭马”爆红,解锁跨境选品新思路

1月10日&#xff0c;#义乌产的哭哭马火了#登上热搜第一。 起因是一位网友意外购入一只嘴部缝反的马年公仔&#xff0c;并将其购买经历分享至社交平台后该公仔走红&#xff0c;且被网友戏称为隐藏款“哭哭马”。 哭哭马因“表情委屈、契合当代打工人精神状态”而全网爆单。 这款…

作者头像 李华
网站建设 2026/7/13 7:23:08

拥有PMP证书等于拥有“人才绿卡”

作为深耕项目管理领域多年的学长&#xff0c;今天必须给大家扒一扒 PMP 认证的隐藏价值&#xff01;国内发展 20 多年的 PMP&#xff0c;早就不是小众圈里的 “能力证明”&#xff0c;现在认可度和含金量逐年飙升&#xff0c;更关键的是 —— 手握这本证&#xff0c;能直接解锁…

作者头像 李华
网站建设 2026/7/13 6:54:55

《创业之路》-840-那些管理良好、资源充足、客户导向明确、持续创新的优秀企业,却在面对某些新技术或市场变革时走向失败。其根源不在于企业“做错了什么”,而恰恰是因为它们“做得太对。这符合万物演进的规律

一、“创新者的窘境”是什么&#xff1f;“创新者的窘境”&#xff08;The Innovators Dilemma&#xff09;指的是&#xff1a;那些管理良好、资源充足、客户导向明确、持续创新的优秀企业&#xff0c;却在面对某些新技术或市场变革时走向失败。这看似矛盾的现象&#xff0c;其…

作者头像 李华