1、表备份
● 备份表结构
○ create table + 表1 like + 表2
■ 表1 为原有的表,表2 为备份出的表
备份表 student 为 tb_student
mysql> create table tb_student like student;
mysql> show tables;
±------------------+
| Tables_in_students |
±------------------+
| student |
| tb_student |
±------------------+
mysql> desc tb_student;
±------±------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±---------------+
| id | int(1) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
| sex | char(2) | YES | | NULL | |
±------±------------±-----±----±--------±---------------+
● 备份表数据
○ insert into + 表1 select * from + 表2
■ 将表2 中的数据备份到表1 中
○ 注意点:插入的表必须要存在
把表 student 中的数据备份到表 tb_student中
mysql> insert into tb_student select * from student;
mysql> select * from student;
±—±----------±-----+
| id | name | sex |
±—±----------±-----+
| 1 | 李四 | 10 |
| 2 |黄菊 | 8 |
| 3 | 赵乐| 9 |
±—±----------±-----+
mysql> select * from tb_student ;
±—±----------±-----+
| id | name | sex |
±—±----------±-----+
| 1 | 李四 | 10 |
| 2 | 黄菊 | 8 |
| 3 | 赵乐 | 9 |
±—±----------±-----+
● 备份表中部分数据
○ 把一个表的某些字段插入到一个新表中
■ insert into + 表1(字段1,字段2) select 字段1,字段2 from 表2
○ 注意点
■ 插入的表必须存在
■ 插入的表是新表,没有数据
备份表 student 中的 id,name 两个字段数据到表 tb_student 中
mysql> insert into tb_student(id,name) select id,name from student;
mysql> select * from student;
±—±----------±-----+
| id | name | sex |
±—±----------±-----+
| 1 | 李四 | 10 |
| 2 | 黄菊 | 8 |
| 3 | 赵乐 |9 |
±—±----------±-----+
mysql> select * from tb_student;
±—±----------±-----+
| id | name | sex |
±—±----------±-----+
| 1 | 李四| NULL |
| 2 | 黄菊 | NULL |
| 3 | 赵乐| NULL |
±—±----------±-----+
2、数据库备份还原
● 数据库备份
○ mysqldump -uroot -p 数据库名 > 脚本名
将数据库备份到 /YZ 目录下的 student_copy.sql 文件中
[root@localhost /]# mysqldump -uroot -p student > /YZ/student_copy.sql
Enter password: …
● 还原数据库
○ mysql -uroot -p 数据库 < 脚本名
○ 数据库必须存在
新建数据库 stu_db
mysql> create database student_db;
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| cms |
| mysql |
| student_db |
| test |
±-------------------+
还原数据库数据到 student_db 数据库中
[root@localhost /]# mysql -uroot -p student_db < /YZ/student_copy.sql
Enter password: …
再次进入 MySQL 数据库
[root@localhost /]# mysql -u root -p
Enter password: …
进入 stu_db 库中
mysql> use student_db;
查看 stu_db 库的表,验证表是否还原成功
mysql> show tables;
±-----------------+
| Tables_in_student_db |
±-----------------+
| dcs |
| duoceshi |
| t |
| t_course |
| t_student |
| v_stu |
±-----------------+
查看 student 表中数据,验证表数据是否还原成功
mysql> select * from student;
±—±----------±-----+
| id | name | sex |
±—±----------±-----+
| 1 | 李四 | 10 |
| 2 |黄菊 | 8 |
| 3 | 赵乐 | 9 |
±—±----------±-----+