上一篇:04【DQL查询】
下一篇:06【数据库的约束】
文章目录
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密码 数据库 表1 表2... > 文件路径
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