目录
一、mysqldump工具简介
mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。
二、mysqldump 命令使用
创建两个数据库
create database test1;
use test1;
create table user(id int , name varchar(20),sex varchar(2));
create table product(id int , name varchar(20),remark varchar(50));
create database test2;
use test2;
create table order(id int ,name varchar(20),remark varchar(20));
1.备份所有数据库
mysqldump -uroot -p123456 -A >/root/db_back/all.sql
输入备份语句后提示在控制台输入密码不安全。
如下,已经有了all.sql文件了
另一种写法,替代 -A
mysqldump -uroot -p123456 --all-databases > /root/db_back/all2.sql
2.导出全部表空间信息
mysqldump -uroot -p123456 -A --all-tablespaces > /root/db_back/all3.sql
3.备份指定数据库
mysqldump -uroot -p123456 --databases test1 test2 > /root/db_back/all4.sql
参数后面所有名字参量都被看作数据库名。
cat all4.sql
如下,test1数据库的product表和user表都可以看到
往下拉,可以看到test2数据库的order表和order1表,都是自己建立的
4.备份指定表
mysqldump -uroot -p test1 user > all5.sql;
如下 备份了test1库的user这一张表
-p后面没有写密码,则会提示输入一次密码
备份多张表:
mysqldump -uroot -p test1 user product > all5.sql;
如下,当表中间用逗号时,提示找不到这个表,因为表分割要用空格
查看all6.sql 确实有这两个表
5.备份带数据的表
给test1的user表插入两条数据
备份:
mysqldump -uroot -p test1 user > all7.sql;
cat 查看一下:确实把数据也备份了