【MySQL】如何把Windows上的MySQL数据库迁移到Linux服务器上

article/2025/9/25 12:30:46

目录

  • 1. 前言
  • 2. 物理备份与逻辑备份
  • 3. mysqldump实现逻辑备份
  • 4. 逻辑恢复


1. 前言

  • 最近在学黑马的《瑞吉外卖》,前期的基础版本一致在 Windows 电脑上开发,包括 MySQL 数据库也是安装在 Windows 电脑上。最近才学到优化篇,安装了 Linux 虚拟机作为服务器来模拟生产环境,所以想把项目的所有数据都迁移到 Linux 虚拟机上。
  • 笔者在 Windows 和 Linux 上所用的 MySQL 版本均为 8.0.28 。

2. 物理备份与逻辑备份

  • 物理备份:备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,但占用空间比较大,MySQL 中可以用 xtrabackup 工具来进行物理备份。
  • 逻辑备份:对数据库对象利用工具进行导出工作,汇总入备份文件内。逻辑备份恢复速度慢,但占用空间小,更灵活。MySQL 中常用的逻辑备份工具为 mysqldump。逻辑备份就是备份 SQL 语句,在恢复的时候执行备份的 SQL 语句实现数据库数据的重现。本篇博文就是用这种方式进行迁移。

3. mysqldump实现逻辑备份

  • mysqldump 是 MySQL 提供的一个非常有用的数据库备份工具。

  • 比如说,我想把《瑞吉外卖》项目的数据库 reggie 备份,就适合这种情况:

    image-20221110144547230

  • mysqldump 命令执行时,可以将数据库备份成一个文本文件,该文件中实际上包含多个 CREATEINSERT 语句,使用这些语句可以重新创建表和插入数据。其备份过程主要分成两步:

    • 查出需要备份的表的结构,在文本文件中生成一个 CREATE 语句;
    • 将表中的所有记录转换成一条 INSERT 语句。
  • 基本语法

    mysqldump -u 用户名称 -H 主机名称 -p密码 待备份的数据库名称[tbname, [tbname...]]> 备份文件名称.sql
    

【说明】

  • 备份的文件并非一定要求后缀名为 .sql ,例如后缀名为 .txt 的文件也是可以的。

  • 举例:我在 Windows 系统下的 MySQL 使用 root 用户备份 reggie 数据库:

  • 打开 Windows 的 cmd 命令行:

    -- 备份文件存储在当前目录下
    mysqldump -uroot -p你的MySQL密码 reggie>reggie.sql
    
    -- 备份到具体的目录下
    mysqldump -uroot -p你的MySQL密码 reggie > G:\MySQL-backup\reggie.sql
    
  • 备份完成,在对应目录下可以看到 SQL 文件:

    image-20221110152356506


4. 逻辑恢复

  • 使用 mysqldump 命令将数据库中的数据备份成一个文本文件 (xxx.sql) 。需要恢复时,可以使用 MySQL 命令来恢复备份的数据。

  • MySQL 命令可以执行备份文件中的 CREATE 语句和 INSERT 语句。通过CREATE 语句来创建数据库和表。通过 INSERT 语句来插入备份的数据。

  • 基本语法

    mysql -u root -p [dbname] < backup.sql
    
  • 其中,dbname 参数表示数据库名称。该参数是可选参数,可以指定数据库名,也可以不指定。指定数据库名时,表示还原该数据库下的表。此时需要确保 MySQL 服务器中已经创建了该名的数据库。不指定数据库名时,表示还原文件中所有的数据库。此时 SQL 文件中包含有 CREATE DATABASE 语句,不需要 MySQL 服务器中已存在这些数据库。


  • 使用 root 用户,将之前举例中在 Windows 下备份的 reggie.sql 文件中的备份导入到 Linux 服务器上的 MySQL 数据库中。步骤如下:

  • 在 Linux 服务器上的/var/lib/mysql 目录下创建文件夹 backup 存放 MySQL 的备份文件:

    mkdir /var/lib/mysql/backup
    

    image-20221110154658460

  • 然后把 Windows 上的 reggie.sql 文件上传至 Linux 服务器上的 /var/lib/mysql/backup 目录下。

    image-20221110154759247

    image-20221110154826629

    image-20221110154847842

  • 如果备份文件中包含了创建数据库的语句,则恢复的时候不需要指定数据库名称,如下所示:

    mysql -uroot -p < reggie.sql
    
  • 否则需要指定数据库名称,如下所示:

    mysql -uroot -p reggie < reggie.sql
    
  • 因此我们打开 reggie.sql 文件查看:

    发现没有包含创建数据库的语句,因此我们下一步是先进入 Linux 服务器上的 MySQL 数据库来创建对于的数据库。

  • 在 Linux 命令行窗口中输入下面语句来进入 MySQL:

    mysql -uroot -p你的密码
    

    image-20221110155220864

  • 创建瑞吉外卖的数据库 reggie

    CREATE DATABASE IF NOT EXISTS reggie CHARACTER SET 'utf8';
    

    image-20221110155506303

  • 查询所有的数据库:

    SHOW DATABASES;
    

    image-20221110155553309

  • 接着,我们退出 MySQL :

    QUIT
    

    image-20221110155728907

  • 进入 /var/lib/mysql/backup/ 目录下:

    cd /var/lib/mysql/backup/
    
  • 然后,我们就可以开始逻辑恢复数据库了:

    mysql -uroot -p你的密码 reggie < reggie.sql
    

    image-20221110161356199

  • 再次进入 MySQL :

    mysql -uroot -p你的密码
    

    image-20221110162111201

  • 进入 reggie 数据库:

    USE reggie;
    
  • 查看 reggie 数据库中的数据表:

    SHOW tables;
    
  • 随便查看一个数据库表:

    SELECT * FROM user;
    
  • 数据全部都对,说明 reggie 数据库中的所有数据都成功迁移到 Linux 服务器上了。


http://chatgpt.dhexx.cn/article/1kGBwG6S.shtml

相关文章

MySQL数据库迁移(数据文件直接迁移)

MySQL数据库迁移 MySQL数据库迁移(数据文件直接迁移) 在今年10月下旬的时候&#xff0c;公司的服务器需要迁移&#xff0c;其中涉及到了MySQL数据库迁移。查看了一下MySQL数据文件的大小&#xff0c;接近60G的大小(实际数据并没用那么多)。由于服务器上业务需要&#xff0c;要尽…

mysql——数据库之间的迁移

今天继续给大家分享mysql数据库的知识 不同数据库之间的迁移 不同数据库之间迁移是指从其他类型的数据库迁移到MySQL数据库&#xff0c;或者从MySQL数据库迁移到其他类型的数据库。例如&#xff0c;某个网站原来使用Oracle数据库&#xff0c;因为运营成本太高等诸多原因&…

mysql数据库迁移方案

怎样用命令行把MySQL数据库迁移到另一台Linux服务器 1、用dump命令备份数据库。 #mysqldump-uroot-pdbfile>dbfile.sql 2、用rsync从新服务器获得备份的文件(SCP或WGET也可以)。 #rsync-avrrootmyolddbserver:/home/mydumpfolder/dbfile.sql 3、登陆新服务器的mysql客户端。…

mysql数据库数据迁移方法

说明&#xff1a;这里不讨论命令行还有通过navicat等工具的做法&#xff0c;这里只讨论在mysql坏掉&#xff08;不能启动&#xff09;的情况下&#xff0c;怎么办。 方法&#xff1a; a) 先来看mysql数据库文件的情况&#xff1a; mysql坏掉了&#xff0c;不管是linux还是wi…

MySQL数据库迁移(直接复制文件)

原地址&#xff1a;http://www.cnblogs.com/advocate/archive/2013/11/19/3431606.html MySQL数据库迁移(数据文件直接迁移) 在今年10月下旬的时候&#xff0c;公司的服务器需要迁移&#xff0c;其中涉及到了MySQL数据库迁移。查看了一下MySQL数据文件的大小&#xff0c;接近60…

MySQL数据库迁移方法

一、停止MySQL服务 此电脑右键 – 管理 – 服务&#xff0c;找到 MySQL 停止 二、修改路径 到C:\ProgramData\MySQL\MySQL Server x.x找到my.ini&#xff0c;打开它 第95行datadir改成目标路径&#xff0c;特别注意目标路径分隔符必须为 “\”&#xff0c;否则不成功&…

Mysql数据库迁移|如何把一台服务器的mysql数据库迁移到另一台服务器上的myql中

前言 那么这里博主先安利一下一些干货满满的专栏啦&#xff01; Linux专栏https://blog.csdn.net/yu_cblog/category_11786077.html?spm1001.2014.3001.5482操作系统专栏https://blog.csdn.net/yu_cblog/category_12165502.html?spm1001.2014.3001.5482手撕数据结构https:/…

MySQL数据迁移

1、停止MySQL服务 右击 我的电脑—>管理—>服务和应用程序 —>服务—>Mysql—>停止 2、将原磁盘路径下的数据复制到需要迁移到路径下 如&#xff1a;将C:\projectDeploy\mysql\mysql5.6\mysql5.6\MySQL Server 5.6\data中的数据复制到 D:\mysql\dat…

数据迁移的几种方式 - MySQL数据库

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…

mysql数据库数据迁移操作

1.新建一个需要迁移的数据库 2.进行数据迁移 迁移步骤&#xff1a; 1.工具-->点击 数据传输 &#xff0c;选择需要被导的数据库&#xff0c;和导入的数据库 看到了吗以及导入成功了

mysql迁移数据库

mysql迁移数据库我通常用2种方法。1、用sql文件把机器A中数据库的表结构和数据等等导出&#xff0c;然后导入到机器B中对应数据库中。2、直接将机器A中mysql 目录下的data数据文件拷贝到机器B中MySQL对应目录。下面分别介绍这2种mysql迁移数据库方式 1、用sql文件把A服务器数据…

MySQL的数据迁移

一、前言 数据库的数据迁移是我们经常遇到的问题&#xff0c;如因磁盘空间不够、业务出现瓶颈、项目改造等原因。 二、MySQL数据迁移常用的方法 1、使用第三方迁移工具。 2、数据文件和库表结构直接拷贝到新服务器&#xff0c;挂载到同样配置的MySQL服务下。 3、数据库直接导…

你觉得做程序员期间最开心的是什么?

不管是新入行的程序员还是工作多年的程序员&#xff0c;都会想一个问题&#xff0c;在这份工作中最开心的事情是什么呢&#xff1f;是无bug还是工作中发生的其他一些事情&#xff1f; 今天我们邀请了 3 名淘系技术的工程师&#xff0c;结合他们真实的学习工作经历&#xff0c;给…

限时免费下载《程序员面试宝典》.pd

社会竞争很残酷、面试则是一场表演&#xff0c;企业永远喜欢可以随机应变、聪明的求职者。 程序员的面试不同于一般岗位的面试。 当你在羡慕程序员十几万美金年薪的同时&#xff0c;你却不知道他们在应付面试时&#xff0c;要经历的重重磨难和压力。 程序员面试中&#xff0c;技…

互联网行业职位介绍 —— OD、PM、RD、FE、UE、QA、OP、DBA...

各种职位的简称在百度上一搜一大堆&#xff0c;我也只是根据自己公司的习惯&#xff0c;把常用的总结下来&#xff1a; 1、管理层 CEO – Chief Executive Officer 首席执行官 VP – Vice President 副总裁 HRD – Humen Resource Director 人力资源总监 OD – Operations…

浩鲸科技是外包公司吗_广东电商外包服务公司是什么意思_聚财猫科技

首页 > 新闻中心 发布时间&#xff1a;2020-11-12 02:11:12 导读&#xff1a;聚财猫科技为您提供广东电商外包服务公司是什么意思的相关知识与详情&#xff1a; 这种类型的公司缺乏运营团队的能力和技能。 在与客户的对话中&#xff0c;不强调团队的人数&#xff0c;合作伙…

阿里数据产品经理工作(总结篇):数据PD,做牛做马

送给真正的互联网人一顿干货早餐 【小咖导读】文自 听雨-悟禅 博客&#xff0c;PD&#xff08;指产品经理&#xff0c;下同&#xff09;本身就是在做牛做马&#xff0c;关系圈异常复杂。数据PD也不例外。而且打交道的人更多。以下是作者用PPT绘制的数据产品经理关系圈。 科普&a…

DevOps笔记-05:IT行业中BA、SM、PO、PM、PD、Dev、Ops、QA都是什么角色

1、BA &#xff08;1&#xff09;定义 BA是Business Analys缩写,即业务需求分析师。在互联网公司里&#xff0c;BA的角色就是产品经&#xff08;PM&#xff09;&#xff0c;只是BA要承接某个很具体的业务或者领域&#xff0c;比如银行也有自己的IT部门&#xff0c;银行IT里的产…

Java空指针异常:NullPointerException

Java空指针异常&#xff08;NullPointerException&#xff09;&#xff1a;空指针异常属于运行时异常&#xff08;RuntimeException&#xff09;&#xff0c;即&#xff1a;编译会通过&#xff0c;但运行时会报异常。当你调用某个实例对象的方法时&#xff0c;如果该实例对象是…

什么是空指针异常

日常开发过程中&#xff0c;最常见的异常莫过于NullPointerException&#xff0c;之前的时候&#xff0c;只是知道去找到报错的位置&#xff0c;然后去解决它&#xff0c;最近有空学习C语言&#xff0c;就去深究了下NullPointerException异常的本质。 发生NullPointerExceptio…