MySQL 数据库的备份与恢复

方法一(使用命令行的方式):
基本原理:
使用命令行工具,通过控制台语句:mysqldump -uroot -p密码 newset(new为已经定义好的数据库名) > 硬盘名+文件名(后缀为sql),备份数据库newset,将newset中含有的所有数据存储到sql文件中。之后在数据库中重新定义一个新的数据库new(命名随意)。通过use new;打开该数据库,在某个数据库中用soure 恢复特定文件中的数据,如source d://newset.sql,能将newset.sql文件中的数据导入数据库new中。

实现步骤:
打开控制台界面,在其中输入mysql -uroot -p密码,进入mysql。
在这里插入图片描述
输入show databases; 显示当前数据库。
在这里插入图片描述

可以看到此时的数据库newset,通过use newset; 打开数据库newset
在这里插入图片描述
输入show tables; 展示数据库newset中含有的数据
在这里插入图片描述

通过select * from student; 展示student表中含有的数据在这里插入图片描述

此时数据库newset中的数据已经全部被打开,接下来我们通过exit对mysql进行关闭,再进行数据的备份操作。在这里插入图片描述
输入语句mysqldump -uroot -p密码 newset > d://newset.sql,对数据库newset备份,将其中的数据备份到文件newset.sql中。在这里插入图片描述
此时已经备份成功,当我们到newset.sql所在的文件位置时(这里是d盘),我们会发现该文件不为0kb,所以文件中是含有数据的,数据库备份成功。
在这里插入图片描述
接下来我们对数据库进行恢复。重新输入“mysql -uroot -p密码”进入mysql中,因为原来的数据库newset还是存在的,所以我们要对newset进行删除操作。
首先我们先通过show databases;展示所有的数据库,再通过drop database newset;将数据库newset删除。
在这里插入图片描述
之后重新创建一个新的数据库new。输入create database new;
在这里插入图片描述
再输入use new; 打开数据库new,易知数据库中不含任何内容。
在这里插入图片描述
再输入source d://newset.sql; 对文件newset.sql中的数据进行释放,达到恢复数据的功能。
在这里插入图片描述
此时数据已经恢复成功,我们通过前面已经说过的方法,打开是数据库new,检查数据库new中的数据是否和newset完全相同。
在这里插入图片描述
可以看到new中的数据和之前的newset中的数据完全相同。第一种数据库的备份与还原方法展示完毕。

方法二(使用命令行的方式):
基本原理:
使用命令行工具,通过控制台语句 mysqldump -uroot -p密码 --lock-all-tables 数据库名 > d://文件名.sql 备份到指定文件夹,再通过语句mysql -uroot -p密码 数据库名 < d://文件名 用指定的文件中恢复数据库。
实现步骤:
首先打开数据库,对已经含有内容的数据库newset.sql备份(步骤和前面相似,该处便不再展示前面的代码截图)
直接在控制台界面中输入备份文件的代码,格式为
mysqldump -uroot -p密码 --lock-all-tables 数据库名 > d://文件名.sql
在这里插入图片描述
备份完成,接下来进入D盘中看备份文件是否存在。如下图所示,文件不为0KB,所以文件中存在内容,数据库的备份成功。
在这里插入图片描述
接下来进入mysql中,对数据库newset进行删除操作。如下图删除成功。在这里插入图片描述
重新建立一个数据库newset;代码如下图所示。

在这里插入图片描述

易知,此时的数据库newset为空,关闭mysql,进行接下来的数据库恢复操作。
在这里插入图片描述
输入mysql -uroot -p密码 数据库名 < d://文件名.sql ,对数据库进行恢复操作。下图可知,数据库恢复成功。
在这里插入图片描述
接下来,将数据库newset打开,看其中是否含有数据(操作方法和第一种方法相似)。
在这里插入图片描述
可以看到数据库newset中已经含有了数据数据库的恢复成功。第二种数据库的备份与还原方法展示完毕。

方法三(使用Navicat文件备份):
基本原理:
利用工具Navicat,对数据库进行备份和恢复操作。
实现步骤:
打开Navicat,连接到MYSQL
右键需要备份得数据库,依次选择“转储SQL文件”->“结构和数据”,如下图所示
在这里插入图片描述
再将其存储到想存放的位置,在这里我将其放在了桌面上,方便后续的查找。至此,数据库的备份操作完成。
在这里插入图片描述
为了更加明显地看到效果,这里将数据库newset中的表student删除。此时数据库newset为空,如下图所示。在这里插入图片描述
接下来,鼠标放在所连接的服务器上,点击鼠标右键,选择“运行SQL文件”。
在这里插入图片描述
点击标记的位置,选择所需要还原的数据库文件的位置,这里直接选择桌面上数据库newset的位置。
在这里插入图片描述
点击开始,出现下面的图片后点击关闭,数据库恢复操作完成。
在这里插入图片描述
再次进入数据库newset,会看到原来的表格已经恢复。在这里插入图片描述
可以看到数据库newset中已经含有了表格数据,数据库的恢复操作成功。第三种数据库的备份与还原方法展示完毕。

方法四(Data文件备份):
基本原理:
通过备份Data文件夹的方式,对数据库进行备份和恢复操作。
实现步骤:
要想通过直接备份Data文件夹的方式实现对数据库的备份和恢复操作,首先需要找到MySQL的InnoDB的引擎,将隐藏在C盘的MySQL文件夹下的Data目录备份才行,这才是真正保存MySQL数据的地方。
首先我们进入C盘->用户,进行如下步骤的设置:查看->选项->查看->隐藏受保护的操作系统文件(取消勾选)。如下图
在这里插入图片描述
之后选择确定,此时,文件夹中隐藏的文件All Users将会显示出来
在这里插入图片描述
选择All Users,在其中找到MySQL->MySQL Server 8.0->Data,可以看到所有已经定义的数据库都在里面。在这里插入图片描述
只要在这里面对相应的文件进行复制就可以对数据库进行备份,将备份好的数据粘贴回来就可以实现数据库的恢复。
之后,我们进入mysql中,对已经定义好的某个数据库进行更改,此处的更改只是为了改变“修改日期”的时间,方便后续找到与更改数据库相关的系统文件。因此这种修改可以只是简单的进行增加和删除操作,但是操作前后并不一定要改变数据库中的内容。在这里,我进行的是在数据库school中增加一个表, 再删除该表。
在这里插入图片描述
修改table的时间10:07。按照刚才的顺序,进入Data文件中,将所有的文件全部复制粘贴到备份文件中(部分系统文件可能会因为MySQL服务器的运行而不能被复制或者粘贴,这里可以进入服务->MySQL,将MySQL停止运行)。在这里插入图片描述
这里我将所有“修改时间”显示为10:07的文件备份进了桌面的school文件中。在这里插入图片描述
备份到此就已经完成了。接下来,我们启动MySQL服务(在上一步中关闭了MySQL服务),到MySQL中将数据库school删除,如下图所示。 在这里插入图片描述
回到Data文件夹,我们可以看到school数据库文件夹已经不见了在这里插入图片描述
接下来,我们再次进入服务中将MySQL服务关闭,对数据库进行恢复。将备份好的文件中的所有文件复制粘贴回Data文件中。选择替换目标文件在这里插入图片描述
数据库恢复操作完成,再次启用MySQL服务,进入MySQL中,我们看到数据库school已经出现,其中的数据也都没有丢失。在这里插入图片描述
至此,第四种数据库的备份与还原方法展示完毕。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐