从Windows到Linux:跨平台数据库备份与还原

数据库的备份与还原

目录
  1. 引言
  2. 备份
    • 2.1 备份所有数据库
    • 2.2 备份单个数据库
    • 2.3 备份多个指定数据库
  3. 传输备份文件
  4. 还原
    • 4.1 还原所有数据库
    • 4.2 还原单个数据库
    • 4.3 还原多个指定数据库
  5. 注意事项
  6. 拓展

1. 引言

在不同的操作系统间进行数据库迁移时,命令行工具是我们的可靠伙伴。它们高效且直观,特别是在Windows系统下备份MySQL数据库并将其导入Linux系统时。

2. 备份

2.1 备份所有数据库

要将所有数据库打包保存,请在Windows的命令提示符窗口(注意,不是PowerShell)中执行以下命令:

mysql -u root -p --all-databases > D:\mysqlbak\all_databases.sql

贴士: 确保目录存在,例如D:\mysqlbak。如果没有,请先创建:

mkdir D:\mysqlbak
2.2 备份单个数据库

想要某个特定数据库?轻松搞定:

mysqldump -u root -p database_name > D:\mysqlbak\database_name.sql

例如,保存my_database

mysqldump -u root -p my_database > D:\mysqlbak\my_database.sql
2.3 备份多个指定数据库

多数据库选择?没问题,用--databases把它们列出来:

mysqldump -u root -p --databases db1 db2 db3 > D:\mysqlbak\multiple_databases.sql

3. 传输备份文件

使用XFTP或类似工具,让备份文件游走于Windows和Linux之间,确保它们完好无损地到达Linux(如/home/user/mysqlbak/)。

4. 还原

4.1 还原所有数据库

在Linux终端中,前往备份文件目录,敲下命令,静待所有数据库重获新生:

mysql -u root -p < /home/user/mysqlbak/all_databases.sql

没有报错?对,成功了。

4.2 还原单个数据库

如果只是单恋某个数据库:

mysql -u root -p database_name < /home/user/mysqlbak/database_name.sql

比如,还原你的my_database

mysql -u root -p my_database < /home/user/mysqlbak/my_database.sql
4.3 还原多个指定数据库

批量还原不是梦,只需编写简单脚本,如restore.sh

#!/bin/bash# 数据库名单
databases=("db1" "db2" "db3")# 遍历并逐个恢复
for db in "${databases[@]}"; doecho "Restoring $db..."mysql -u root -p "$db" < /home/user/mysqlbak/$db.sql
done

保存并使其可执行:

chmod +x restore.sh
./restore.sh

5. 注意事项

  • 字符编码:备份时选择统一的字符编码,避免乱码横行。
  • 权限管理:确保有权限操作Linux上的备份文件。
  • 防火墙配置:若通过网络传输,确保防火墙为所需端口打开绿灯。
  • 版本兼容性:确保MySQL版本兼容,在不同系统间保持和谐。

6. 拓展

6.1 使用压缩工具优化备份文件

压缩插件如gzip,不仅节约空间,还缩短传输时间:

mysqldump -u root -p --all-databases | gzip > D:\mysqlbak\all_databases.sql.gz

在Linux上解压还原:

gunzip < /home/user/mysqlbak/all_databases.sql.gz | mysql -u root -p
6.2 自动化备份和还原

用批处理和Shell脚本,将这些任务交给机器:

Windows批处理文件backup.bat

@echo off
set backup_dir=D:\mysqlbak
set date=%date:~0,4%-%date:~5,2%-%date:~8,2%
set filename=all_databases_%date%.sql.gzmysqldump -u root -p --all-databases | gzip > %backup_dir%\%filename%
echo Backup completed: %filename%

Linux Shell脚本restore.sh

#!/bin/bashbackup_dir=/home/user/mysqlbak
filename=all_databases_$(date +%Y-%m-%d).sql.gzgunzip < $backup_dir/$filename | mysql -u root -p
echo Restore completed: $filename
6.3 使用云存储服务

将备份文件托管到云端如AWS S3,不仅节省本地空间,还增加存储的可靠性和安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

准备写一个内网穿透的工具

准备写一个内网穿透的工具&#xff0c;目前只实现了HTTP内网穿透的GET方式&#xff0c;看能不能坚持写下去 git地址&#xff1a; xuejiazhi/PortRelay

google guava 库 最佳实践 学习指南 学习实用示例

学习Guava库 核心提纲: 入门示例 guava 最佳实践 学习指南 1. 概览与入门 Guava库的介绍Guava的安装与依赖配置Guava的主要模块和功能概览 入门示例 2. 基本工具类 Preconditions&#xff1a;用于断言和参数检查Verify&#xff1a;用于验证对象状态 https://blog.csdn.net/…

捣鼓小玩意-分批处理工具类

分批处理工具类 博主自己的博客点击访问&#xff08;内容大部分更新在自己的博客&#xff0c;有时间才会整理到CSDN&#xff09; 有时候会遇到一些大批量数据成千上万的列表&#xff0c;如果单独一个循环处理&#xff0c;可能会很慢&#xff0c;或者是遇到如需要根据id in ()…

提示词战术技巧-前导课

在人工智能的快速发展中,大模型(如OpenAI的GPT-4和GPT-4)为各行各业带来了革命性的变化。正确地选择适合的业务需求的大模型,并掌握提示词工程的编写与调优是成功实现AI应用的关键。本文旨在提供一个全面的教学指南,帮助学习者理解和掌握大模型的业务选型与提示词工程的技…

零配置打包工具 Parcel 的详细使用指南

前言 在前端开发中&#xff0c;选择一个高效且易用的打包工具至关重要。Parcel 作为一款零配置的 Web 应用打包工具&#xff0c;凭借其卓越的性能和简单的使用体验&#xff0c;赢得了众多开发者的青睐。它不仅能够自动处理依赖关系和代码打包&#xff0c;还支持热模块替换和多…

【AI知识】逻辑回归介绍+ 做二分类任务的实例(代码可视化)

1. 分类的基本概念 在机器学习的有监督学习中&#xff0c;分类一种常见任务&#xff0c;它的目标是将输入数据分类到预定的类别中。具体来说&#xff1a; 分类任务的常见应用&#xff1a; 垃圾邮件分类&#xff1a;判断一封电子邮件是否是垃圾邮件 。 医学诊断&#xff1a;…

删除 C 盘空文件夹--递归删除

# Language: Powershell # Style: TypeScript# 文件名: # "文件(夹)&#xff1a;删除空文件夹.ps1"function Remove-EmptyDirectories {param ([string]$Path)# 获取所有目录&#xff0c;把子目录排列在父目录前面。# 删除所有子文件(夹)后&#xff0c;可判断父目录为…

为SSH2协议服务器的用户设置密钥

目录 私钥的创建1. 在服务器上直接生成2. 如果需要配置免密登录3. 查看生成的密钥 导出私钥至SSH用户获取sudo权限 新的一台服务器类型是SSH2&#xff1a;这表示服务器支持SSH&#xff08;Secure Shell&#xff09;协议的第二个版本。SSH是一个网络协议&#xff0c;用于加密方式…

level2逐笔委托查询接口

沪深逐笔委托队列查询 前置步骤 分配数据库服务器 查询模板 以下是沪深委托队列查询的请求模板&#xff1a; http://<数据库服务器>/sql?modeorder_book&code<股票代码>&offset<offset>&token<token>查询参数说明 参数名类型说明mo…

微软开源GraphRAG的使用教程(最全,非常详细)

GraphRAG的介绍 目前微软已经开源了GraphRAG的完整项目代码。对于某一些LLM的下游任务则可以使用GraphRAG去增强自己业务的RAG的表现。项目给出了两种使用方式&#xff1a; 在打包好的项目状态下运行&#xff0c;可进行尝试使用。在源码基础上运行&#xff0c;适合为了下游任…

文献研读|基于像素语义层面图像重建的AI生成图像检测

前言&#xff1a;本篇文章主要对基于重建的AI生成图像检测的四篇相关工作进行介绍&#xff0c;分别为基于像素层面重建的检测方法 DIRE 和 Aeroblade&#xff0c;以及基于语义层面重建的检测方法 SimGIR 和 Zerofake&#xff1b;并对相应方法进行比较。 相关文章&#xff1a;论…

VScode MAC按任意键关闭终端 想要访问桌面文件

说明 最近配置MAC上CPP的运行环境&#xff0c;在安装必要的CPP插件后&#xff0c;配置launch和task等json文件后&#xff0c;点击运行三角形&#xff0c;每次都会跳出main想要访问桌面上的文件。并且输出也是在调试控制台&#xff0c;非常逆天。 尝试 尝试1:尽管我尝试将ta…

7.日常算法

1. NC140 排序 题目来源 要求使用堆进行排序 class Solution { public: void adjustDown(vector<int>& arr, int root, int n){int parent root;int chiled root * 2 1;while (chiled < n){if (chiled 1 < n && arr[chiled 1] > arr[chi…

Linux Shell 脚本编程基础知识篇

ℹ️大家好&#xff0c;我是练小杰&#xff0c;从本文是Linux shell脚本编程的基础知识内容&#xff0c;后续我会不断补充~~ 更多Linux 相关内容请点击&#x1f449;“Linux专栏”~ 假面驾驭&#xff0c;时王&#xff0c;假面骑士时王~~ 文章目录 什么是 Linux Shell主要功能…

QT绘制同心扇形

void ChartForm::paintEvent(QPaintEvent *) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);// 设置抗锯齿painter.save();// 设置无边框&#xff08;不需要设置QPen&#xff0c;因为默认是不绘制边框的&#xff09;QPen pen(Qt::NoPen);// QPen pen…

【0369】Postgres内核 checkpoint record 与 expectedTLEs 校验 ( 12 )

上一篇: 文章目录 1. checkpoint record 校验1.1 预期 timeline1.2 timeline 判断1.3 checkPoint ThisTimeLineID2. 最小 recovery point3. 初始化 LastRec1. checkpoint record 校验 如果 checkpoint record 的位置不在请求 timeline 历史中的预期 timeline 上,则无法继续…

TL3568/TL3562更改主机名,在Kernel用menuconfig失效

前言 最近在玩RK3562开发板&#xff0c;想改串口调试时看到的主机名&#xff0c;开发板的主机名默认是RK3562-Tronlong&#xff0c;如图&#xff1a; 按照之前玩T113开发版&#xff0c;在Kernel通过make menuconfig&#xff0c;可以改。但是在这个RK3562&#xff0c;改了后&…

【PLL】ISSCC 2024 Tutorial: Calibration Techniques in PLLs

1. 数字辅助模拟电路 为什么要辅助&#xff0c;或替换模拟电路&#xff1f; 利用CMOS管子尺寸缩小&#xff0c;降低功耗 和 减小面积校正模拟电路的 非线性行为 和 失配 数字辅助的好处&#xff1a; 简化模拟电路设计提高能源效率&#xff0c;提高准确度 2. 锁相环基础 2.1 概…

STM32-笔记5-按键点灯(中断方法)

1、复制03-流水灯项目&#xff0c;重命名06-按键点灯&#xff08;中断法&#xff09; 在\Drivers\BSP目录下创建一个文件夹exti&#xff0c;在该文件夹下&#xff0c;创建两个文件exti.c和exti.h文件&#xff0c;并且把这两个文件加载到项目中&#xff0c;打开项目工程文件 加载…

在M系列芯片的Mac上使用Uniapp开发的依赖安装指南

在M系列芯片的Mac上使用Uniapp开发的依赖安装指南 在基于M系列芯片&#xff08;例如M3、M4&#xff09;的Mac上进行Uniapp开发时&#xff0c;使用esbuild和rollup等依赖包时需要注意处理不同架构的支持。具体问题出现在darwin-arm64&#xff08;ARM架构&#xff09;和darwin-x…