数据库的恢复与备份

mysql数据库的备份和恢复

mysql数据备份与恢复

数据备份

  • 备份一个数据库
mysqldump -u用户名 -p密码 数据库名 > 备份的文件名
mysqldumo -uroot -p123456 database_name > mysql.sql  # 可以在文件名前写上文件路径
  • 1
  • 2
  • 备份多个数据库
mysqldump -u用户名 -p密码 数据库1 数据库2 > 备份的文件名
mysqldumo -uroot -p123456 database1 database2  > mysql.sql  
  • 1
  • 2
  • 备份一个表
mysqldump -u用户名 -p密码 数据库名 表名 > 备份的文件名
mysqldump -uroot -p123456 database_name table_name >mysql.sql
  • 1
  • 2

如果只需要备份数据库或数据表的结构,在数据库名后面加上 ‘-d’ 即可

  • 备份数据库或数据表的结构
mysqldump -u用户名 -p密码 数据库名 -d > 备份的文件名
mysqldumo -uroot -p123456 database_name -d > mysql.sql 
# 数据表同理
  • 1
  • 2
  • 3

如果需要指定备份数据库的服务器 可以使用如下命令

mysqldump -h服务器 -u用户名 -p密码 数据库 > 备份的文件名
mysqldumo -h192.168.11.12 -uroot -p123456 database_name > mysql.sql 
  • 1
  • 2
下面是我备份得到的数据库的部分截图

在这里插入图片描述

数据还原

  • 还原数据库
mysql -u用户名 -p密码 已存在的数据库名 < 备份的数据库文件路径
mysql -uroot -p123456 exit_database < mysql.sql
  • 1
  • 2

【注意】

  • 备份数据库是“>”,还原数据库是“<”,别弄混。
  • 通过这种方式还原时,必须保证两个MySQL数据库的版本号是相同的。MyISAM类型的表有效,对于InnoDB类型的表不可用,InnoDB表的表空间不能直接复制。

测试

在使用上面数据进行备份还原时有几个问题:

  1. 数据库没有清空是否能够还原成功?会不会还原后有重复的数据出现?
  2. 数据备份后,新增数据后,还原数据库会保留新增的数据吗?

针对以上问题,我进行了测试

测试环境

  • mysql数据库版本:mysql5.5
  • 系统:windows

在这里插入图片描述
数据表结构
在这里插入图片描述
初始数据
在这里插入图片描述

开始测试

进行数据库备份

在桌面创建了个 test 文件夹,在文件夹下打开powershell窗口,执行命令

mysqldump -uroot -p123456 test >test.sql
  • 1

命令执行完成后,在当前目录下生成了 test.sql 备份文件
在这里插入图片描述

测试1: 1. 数据库没有清空是否能够还原成功?会不会还原后有重复的数据出现?

步骤1: 删除数据表中的数据

将 customer 表中的 id 为1的数据删除,如下图所示
在这里插入图片描述
步骤2:数据还原

执行还原语句
在这里插入图片描述
还原后进行查询 customer 表,如下图
在这里插入图片描述
结论
数据库没有清空可以还原成功,不会出现重复的数据

测试2: 数据备份后,新增数据后,还原数据库会保留新增的数据吗?

新增一条数据,结果如下
在这里插入图片描述
执行数据库还原语句
在这里插入图片描述
查询数据表,如下图:
在这里插入图片描述

结论

通过上面结果可以得出,使用上面方法对数据库进行数据备份还原,在备份后,对数据表进行增删改的修改,进行还原会把数据库完全还原到备份时的数据,不会造成数据混乱

原文地址:https://www.cnblogs.com/huibaobao/p/13558246.html