类别:SQL数据库 / 日期:2025-12-11 / 浏览:10 / 评论:0

备份操作:

-- mysql是容器名,spd是数据库名,/root/spd_backup_temp/backup_before_restore.sql是centos里面的文件,不是容器里的

docker exec mysql mysqldump -u root -p spd > /root/spd_backup_temp/backup_before_restore.sql


还原操作:

直接在运行的MySQL容器中执行还原,不需要停止mysql容器

docker exec -i mysql mysql -u root -p spd < /root/spd_backup_temp/spd_20251118020001.sql



在CentOS系统上,将SQL备份文件恢复到Docker中的MySQL数据库,关键在于将备份文件导入到正在运行的MySQL容器里。下面为你梳理了详细的操作步骤和注意事项。

🔄 核心恢复步骤

  1. 准备备份文件
    首先,确保你的备份文件 spd_20251118020001.sql 在CentOS宿主机上。如果备份文件是压缩格式(如.gz),需要先解压:

    gzip -d spd_20251118020001.sql.gz

    如果你的gzip版本较旧不支持-k参数,解压后会删除原.gz文件。如果想保留原文件,可以先用cp命令复制一份再解压。如:
    cp spd_20251118020001.sql.gz spd_20251118020001.sql.gz.backup

  2. 复制备份文件到容器
    使用 docker cp 命令将解压后的SQL文件复制到MySQL容器的临时目录中。请将 mysql-container 替换为你的实际容器名或ID。

    docker cp /path/to/your/spd_20251118020001.sql mysql-container:/tmp/
  3. 执行数据导入
    通过 docker exec 命令在容器内执行 mysql 客户端,将备份文件导入到名为 spd 的数据库中。(容器外输入命令)

    docker exec -i mysql-container mysql -u root -p spd < /tmp/spd_20251118020001.sql

    执行后会提示你输入MySQL的root密码。

  4. 【另一种方法既然文件已经在容器内,直接在容器内执行导入:

    # 进入容器
    docker exec -it mysql bash
    
    # 在容器内执行导入
    mysql -u root -p spd < /tmp/spd_20251118020001.sql

⚠️ 重要提醒与验证

  • ❗ 数据备份与覆盖警告
    在恢复前,请务必确认当前Docker中spd数据库的数据是否还需要。因为恢复操作会覆盖现有数据。如果spd数据库中有重要数据且无其他备份,操作前强烈建议先备份当前数据库-1-10

    # 在宿主机执行,将当前spd数据库备份到backup_before_restore.sql
    docker exec mysql-container mysqldump -u root -p spd > /path/to/your/backup_before_restore.sql
  • 🔍 验证恢复结果
    导入完成后,建议连接至MySQL数据库验证数据是否完整恢复-1-10

    # 登录MySQL命令行
    docker exec -it mysql-container mysql -u root -p

    在MySQL交互界面中,可以检查spd数据库的表和数据:

    USE spd;
    SHOW TABLES;
    SELECT COUNT(*) FROM your_table_name; -- 选一张有代表性的表检查数据量

🛠️ 其他可行的恢复方法

除了上述核心方法,你也可以考虑:

  • 直接通过管道解压并导入-6
    如果备份文件是.gz格式,且不想手动解压,可以组合使用zcatdocker exec命令:

    zcat /path/to/your/spd_20251118020001.sql.gz | docker exec -i mysql-container mysql -u root -p spd
  • 交互式导入
    如果你更习惯在容器内部执行命令,也可以先进入容器,再使用source命令导入-1

    # 1. 进入容器终端
    docker exec -it mysql-container bash
    # 2. 在容器内部,登录MySQL
    mysql -u root -p
    # 3. 在MySQL命令行中,选择数据库并导入
    mysql> USE spd;
    mysql> SOURCE /tmp/spd_20251118020001.sql;

希望这些步骤能帮助你顺利完成数据恢复。


打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章