05【数据的备份与恢复】

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 05【数据的备份与恢复】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文


上一篇04【DQL查询】

下一篇06【数据库的约束】

目录【MySQL零基础系列教程】



05【数据的备份与恢复】

5.1 备份的应用场景

在服务器进行数据传输、数据存储和数据交换,就有可能产生数据故障。比如发生意外停机或存储介质损坏。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失,造成的损失是无法弥补与估量的。

5.2 备份与还原的语句

5.2.1 数据备份

mysqldump命令主要用于数据库的备份。

语法:

mysqldump [OPTIONS] database [tables]

参数:

  • options:
    • -h:mysql服务器的IP
    • -P:mysql服务器的端口
    • -u:mysql用户名
    • -p:mysql密码
    • -n(--no-create-db):不包含创建数据库语句(包含建表语句和数据)
    • -t(--no-create-info):不包含创建表语句(只要插入语句)
    • -d(--no-data):不包含数据
    • -B(--database):导出数据库(也包含建库语句也包含数据)
    • -A(--all-databases):导出所有数据库

1)导出表:

mysqldump -hip地址 -P端口 -u用户名 -p密码 数据库 表12... > 文件路径

mysqldump -h127.0.0.1 -P3306 -uroot -padmin db02 student > D:/test.sql

如果没有写需要导出的表则默认导出库中所有的表:

mysqldump -uroot -padmin db02 > D:/test.sql

在这里插入图片描述

Tips:-h默认值为127.0.0.1,-P默认值为3306

2)导出库:

mysqldump -u用户名 -p密码 --databases 库1 库2... > 文件路径

mysqldump -uroot -padmin --databases db02 > D:/test.sql
mysqldump -uroot -padmin -B test > test.sql

Tips:导出库和导出表的区别在于导出库的sql语句里面加了create database db_name语句。

导出当前数据库服务器的所有数据库:

mysqldump -u用户名 -p密码 --all-databases > 文件路径

mysqldump -uroot -padmin --all-databases > D:/test.sql
mysqldump -uroot -padmin -A > D:/test.sql

3)指定条件导出:

只导出某张表的数据(不包含建表语句):

mysqldump -uroot -padmin -t db02 student > D:/test.sql

只导出指定数据库的所有表数据(不包建库、建表语句):

mysqldump -uroot -padmin -t -n db02 > D:/test.sql

导出某张表结构(不包含表数据):

mysqldump -uroot -padmin -d db02 student > D:/test.sql

导出某个数据库的建库、建表语句(不包含表数据):

mysqldump -uroot -padmin -d -B db02> D:/test.sql

导出当前数据库服务器的所有的建库、建表语句(不包含表数据):

mysqldump -uroot -padmin -d -A> D:/test.sql

5.2.2 数据还原

1)mysql命令恢复

准备数据,将其保存到D:/test.sql中:

use db02;

drop table if exists student; 

CREATE TABLE `student` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `sex` char(1) DEFAULT NULL,
  `address` varchar(100) DEFAULT NULL,
  `math` int(11) DEFAULT NULL,
  `english` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `student` VALUES (1,'小明',24,'男','湖北武汉',90,100),(2,'小红',25,'女','湖南长沙',88,69),(3,'小龙',26,'男','江西南昌',78,80),(4,'小丽',24,'女','安徽合肥',95,80),(5,'张三',19,'男','福建福州',80,90),(6,'李四',24,'男','广东广州',100,95),(7,'王五',24,'男','河南郑州',90,95);

保存到文本中记得以GBK编码保存,因为windows窗口默认采用GBK编码导入数据;

在这里插入图片描述

修改成GB2312编码后发现中文都变成了乱码:

在这里插入图片描述

没关系,这个时候再将没有乱码的内容复制到文件中即可;

执行数据导入命令(实质上就是把里面的sql执行一遍):

mysql -uroot -padmin < D:/test.sql

在这里插入图片描述

2)source

source是属于mysql的命令,需要登录进mysql执行(实质也是把里面的sql执行一遍)。

mysql> source d:/test.sql;

在这里插入图片描述

Tips:这两种类型的导入只适用于临时的数据导入(数据量不会太大),如果数据量大,导入速度会非常慢

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/131706.html

(0)

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!