MySQL 数据备份
1、表备份
- 备份表结构
- create table + 表1 like + 表2
- 表1 为原有的表,表2 为备份出的表
- create table + 表1 like + 表2
# 备份表 dcs 为 duoceshi mysql> create table duoceshi like dcs; mysql> show tables; +-------------------+ | Tables_in_student | +-------------------+ | dcs | | duoceshi | +-------------------+ mysql> desc duoceshi; +-------+-------------+------+-----+---------+----------------+ | 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 中
- 注意点:插入的表必须要存在
# 把表 dcs 中的数据备份到表 duoceshi 中 mysql> insert into duoceshi select * from dcs; mysql> select * from dcs; +----+-----------+------+ | id | name | sex | +----+-----------+------+ | 1 | zhangsan1 | m | | 2 | lisi1 | m | | 3 | zhangsan2 | m | +----+-----------+------+ mysql> select * from duoceshi; +----+-----------+------+ | id | name | sex | +----+-----------+------+ | 1 | zhangsan1 | m | | 2 | lisi1 | m | | 3 | zhangsan2 | m | +----+-----------+------+
- 备份表中部分数据
- 把一个表的某些字段插入到一个新表中
- insert into + 表1(字段1,字段2) select 字段1,字段2 from 表2
- 注意点
- 插入的表必须存在
- 插入的表是新表,没有数据
- 把一个表的某些字段插入到一个新表中
# 备份表 dcs 中的 id,name 两个字段数据到表 duoceshi 中 mysql> insert into duoceshi(id,name) select id,name from dcs; mysql> select * from dcs; +----+-----------+------+ | id | name | sex | +----+-----------+------+ | 1 | zhangsan1 | m | | 2 | lisi1 | m | | 3 | zhangsan2 | m | +----+-----------+------+ mysql> select * from duoceshi; +----+-----------+------+ | id | name | sex | +----+-----------+------+ | 1 | zhangsan1 | NULL | | 2 | lisi1 | NULL | | 3 | zhangsan2 | NULL | +----+-----------+------+
2、数据库备份还原
- 数据库备份
- mysqldump -uroot -p 数据库名 > 脚本名
# 将数据库备份到 /zhengying 目录下的 student_copy.sql 文件中 [ /]# mysqldump -uroot -p student > /zhengying/student_copy.sql Enter password: ......
- 还原数据库
- mysql -uroot -p 数据库 < 脚本名
- 数据库必须存在
# 新建数据库 stu_db mysql> create database stu_db; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cms | | mysql | | stu_db | | test | +--------------------+ # 还原数据库数据到 stu_db 数据库中 [ /]# mysql -uroot -p stu_db < /zhengying/student_copy.sql Enter password: ...... # 再次进入 MySQL 数据库 [ /]# mysql -u root -p Enter password: ...... # 进入 stu_db 库中 mysql> use stu_db; # 查看 stu_db 库的表,验证表是否还原成功 mysql> show tables; +------------------+ | Tables_in_stu_db | +------------------+ | dcs | | duoceshi | | t | | t_course | | t_student | | v_stu | +------------------+ # 查看 dcs 表中数据,验证表数据是否还原成功 mysql> select * from dcs; +----+-----------+------+ | id | name | sex | +----+-----------+------+ | 1 | zhangsan1 | m | | 2 | lisi1 | m | | 3 | zhangsan2 | m | +----+-----------+------+