MySQL导入与导出备份详解

作者:weixin_40228200 时间:2024-01-16 18:47:08 

一、MySQL备份类型详解

对于现代互联网公司而言,存储在服务器数据库中的数据,逐步成为企业和公司的命脉,对企业和公司的生存发展具有十分重大的影响。为了保证数据库数据存储安全,确保不会因为误操作和不可抗力而破坏,通常我们都会对数据库中的数据进行备份。对MySQL数据库的备份,可以有很多种方式,我们接下来按照不同的分类标准,来讲解一下这些备份方式:

(一)按照备份对数据库的影响分类

1、热备份(Hot Backup)。 指在数据库运行过程中进行备份,并且对数据库正常运行没有任何影响。
2、冷备份(Cold Backup)。 指在数据库停止运行后开始进行的备份。
3、温备份(Warm Backup)。 指在数据库运行过程中进行备份,但是会造成数据库性能下降,对数据库提供服务造成影响的备份方式。

(二)按照备份的文件进行分类

1、逻辑备份。 采用逻辑备份的方式,备份出的数据通常是.sql类型的文件。备份后的内容可读且为文本文件。该方法一般用于数据库的升级、迁移或者对数据库表的批量修改等场景。该方法恢复时间较长。
2、裸文件备份。 指拷贝数据库的物理文件,采用这种方式,数据库恢复时间较短。

(三)按照备份的方式进行分类

1、完全备份。 指的是对数据库进行完整的备份。
2、增量备份。 指的是在上一次备份的基础上,对更新的数据进行备份,而不是备份所有数据。
3、日志备份。 指的是对数据库的日志进行备份,MySQL主从同步架构中就是采用这种备份方式。

二、MySQL数据库导出

(一)mysqldump导出数据

mysqldump是MySQL数据库自带的数据备份导出的工具,该工具支持MyISAM和InnoDB引擎的数据表。mysqldump备份使用参数如下:
-u:表示指定登录数据库使用的用户。
-p:表示指定登录数据库使用的用户密码。
-d:表示导出时只导出数据库的表结构。
-t:表示导出时只导出数据库的具体数据而不包括表结构。
-A:表示导出所有的数据库。
使用mysqldump示例如下:


mysqldump -uroot -proot -A >all_database.sql
mysqldump -uroot -proot pzz > pzz.sql
mysqldump -uroot -proot pzz student > student.sql
mysqldump -uroot -proot -d pzz > pzz_table.sql
mysqldump -uroot -proot -t pzz > pzz_data.sql

上述五条命令,分别表示导出数据库中的所有数据,导出pzz数据库中的数据,导出pzz数据库中student表中的所有数据,导出pzz数据库中表结构相关数据以及导出pzz数据库中除了表结构之外的实际数据。
使用mysqldump导出的文件,结果如下所示:

MySQL导入与导出备份详解

(二)mysqlhotcopy裸文件备份

在MySQL5.5及以下版本的数据库中(MySQl5.7版本的数据库中已经删去mysqlhotcopy命令),可以进行快速备份。mysqlhotcopy所进行的备份,本质上就是对数据库库表文件的直接物理复制,只不过在复制时使用了锁对数据库的内容进行了锁定。并且,mysqlhotcopy命令只能备份MyISAM引擎的数据表。mysqlhotcopy命令使用示例如下:


mysqlhotcopy -u root -p root pzz /root
mysqlhotcopy -u root -p root pzz./student/root

上面两条命令,第一条是对pzz数据库进行备份,第二条是对pzz数据库中的student数据表进行备份。备份过程如下:

MySQL导入与导出备份详解

(三)mysqldump与mysqlhotcopy比较

1、mysqldump会备份成.sql文件,而mysqlhotcopy采用的是裸文件备份。
2、mysqldump备份和恢复比mysqlhotcopy速度慢,因此不适合大文件备份。
3、mysqldump支持MyISAM和InnoDB引擎,而mysqlhotcopy只支持MyISAM引擎。
4、mysqlhotcopy在MySQL5.5(不含)以上的版本中不自带。
5、mysqlhotcopy只能运行在数据库所在的设备上,而mysqldump可以运行在本地设备上,也可以运行在远程客户端。
6、mysqldump和mysqlhotcopy在运行时,都会对数据库进行上锁操作。
7、mysqldump备份的恢复本质上是对.sql文件中SQL语句的执行,而mysqlhotcopy备份的回复本质上是直接覆盖。

三、MySQL数据库导入

如果我们采用mysqlhotcopy对数据库进行备份,那么在恢复时只需要将备份的数据覆盖原有的数据即可。而如果对mysqldump导出的.sql文件进行恢复,则需要进行MySQL的数据导入。MySQL数据库的导入,有两种方式,一种是使用“<”符号,直接将.sql文件中的信息导入MySQL数据库,第二种是在登入数据库后,使用source命令导入数据。
例如,要导入exp.sql的备份数据,则可以执行命令:


mysql -uroot -proot < exp.sql

或者是登录进入数据库后,执行:


source /root/exp.sql

来源:https://blog.csdn.net/weixin_40228200/article/details/122097266

标签:MySQL,导入,备份
0
投稿

猜你喜欢

  • 基于pytorch padding=SAME的解决方式

    2023-03-03 05:05:28
  • ASP--IP字段截取

    2009-05-26 15:47:00
  • js 代码优化点滴记录

    2024-05-28 15:41:47
  • ajax请求get与post的区别总结

    2024-04-29 13:58:25
  • sqlserver之datepart和datediff应用查找当天上午和下午的数据

    2024-01-14 22:27:42
  • 详解Python安装scrapy的正确姿势

    2023-04-04 01:38:14
  • python根据文章标题内容自动生成摘要的实例

    2021-04-28 10:03:10
  • pyecharts绘制各种数据可视化图表案例附效果+代码

    2022-07-08 08:30:03
  • vue 使用async写数字动态加载效果案例

    2024-05-09 09:25:35
  • 详解Python list和numpy array的存储和读取方法

    2022-05-04 05:58:10
  • SQL Server 2005中插入XML数据方法

    2008-05-26 11:56:00
  • jQuery在去除缓存数据的一个失误

    2009-12-14 20:40:00
  • 解决IDEA GIT记录无法查看提交文件的问题

    2022-12-08 01:46:25
  • vue实现下拉菜单树

    2024-05-09 15:18:39
  • python安装sklearn模块的方法详解

    2023-08-01 17:23:48
  • 国内ASP开源建站系统一览

    2009-07-10 13:21:00
  • NopCommerce架构分析之(六)自定义RazorViewEngine和WebViewPage

    2024-05-03 15:31:10
  • 使用post方法实现json往返传输数据的方法

    2024-04-18 09:28:23
  • python实现超市管理系统(后台管理)

    2022-08-17 06:50:22
  • PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明

    2023-11-14 19:42:56
  • asp之家 网络编程 m.aspxhome.com