1、数据库备份

备份的结果都是sql指令

mysqldump:专门用于备份sql的客户端

sql备份:表结构 + 数据

缺点:

  • 会产生的备份文件特别大
  • 不适合特大型数据备份
  • 不适合数据变更频繁的数据库备份

基本语法:

> mysqldump -hpup 数据库名字 [表1 [表2]] > 备份文件地址

备份可以有3种形式:

  • 整库备份 只需太提供数据库名字
  • 单表备份 数据库后跟一张表
  • 多表备份 数据库后跟多张表

示例:

# 整库备份
> mysqldump -hlocalhost -p3306 -uroot -p123456 mydatabase > mydatabase.bak.sql

# 单表备份
> mysqldump -hlocalhost -p3306 -uroot -p123456 mydatabase my_student > mydatabase.my_student.bak.sql
# 多表备份
> mysqldump -hlocalhost -p3306 -uroot -p123456 mydatabase my_student my_class > mydatabase.my_student__my_class.bak.sql

备份文件内容:

-- 删除已存在的表
drop table if exists `my_student`;
-- 创建表结构
set character_set_client = utf8mb4 ;
create table `my_student` (
  `id` int(11) not null auto_increment,
  `name` varchar(10) collate utf8mb4_general_ci default null,
  `class_id` int(11) default null,
  `age` int(11) default null,
  `gender` int(11) default null,
  primary key (`id`)
) engine=innodb auto_increment=10 default charset=utf8mb4 collate=utf8mb4_general_ci;
-- 插入数据
lock tables `my_student` write;
insert into `my_student` values (1,'刘备',1,18,2),(2,'李四',1,19,1),(3,'王五',2,20,2),(4,'张飞',2,21,1),(5,'关羽',null,22,2),(6,'曹操',1,20,null);
unlock tables;

2、数据还原

mysqldump备份的数据文件,没有关于数据库本身的操作,都是针对表级别的操作,当进行数据还原,必须指定数据库

方式一:mysql客户端

# 不用登录,直接操作
> mysql -hpup 数据库 < sql文件位置
mysql -hlocalhost -p3306 -uroot -p123456 mydatabase2 < mydatabase.bak.sql

方式二:sql指令导入

-- 首先进入到对应的数据库
mysql> source sql文件位置
source mydatabase.bak.sql;

方式三:手动复制粘贴(不推荐)

打开备份文件,复制所有sql指令,粘贴到mysql命令行中执行

到此这篇关于mysql数据库数据库备份与还原的文章就介绍到这了,更多相关mysql数据备份还原内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!