将web库(有个表a1)导出到/opt/file1文件中
查看备份文件里面的内容,可看到实际上就是以逻辑备份 sql语句的形式直接导出

物理备份 将数据直接复制 打包等

root@wu-virtual-machine:/home/wu# mysqldump -uroot -p55555 web > /opt/file1; ##mysqldump语句
mysqldump: [Warning] Using a password on the command line interface can be insecure.
###查看备份文件内的内容
root@wu-virtual-machine:/home/wu# egrep -v "#|\*|^$" /opt/file1;
-- MySQL dump 10.13  Distrib 5.7.30, for Linux (x86_64)
--
-- Host: localhost    Database: web
-- ------------------------------------------------------
-- Server version	5.7.30-0ubuntu0.16.04.1
--
-- Table structure for table `a1`
--
DROP TABLE IF EXISTS `a1`;
CREATE TABLE `a1` (
  `id` int(11) DEFAULT NULL,
  `name` char(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `a1`
--
LOCK TABLES `a1` WRITE;
INSERT INTO `a1` VALUES (1,'张三'),(1,'李四');
UNLOCK TABLES;
-- Dump completed on 2020-05-22 17:20:58
root@wu-virtual-machine:/home/wu#

指定字符集导出

mysqldump备份不锁表配置 mysqldump备份单表_mysql


恢复数据库

root@wu-virtual-machine:/home/wu# mysql -uroot -p55555 -e "use web; drop table a1;"#删掉表a1
root@wu-virtual-machine:/home/wu# mysql -uroot -p55555  web < /opt/file1 ##此处必须指定数据库名  web
root@wu-virtual-machine:/home/wu# mysql -uroot -p55555 -e "select * from web;"
ERROR 1046 (3D000) at line 1: No database selected
root@wu-virtual-machine:/home/wu# mysql -uroot -p55555 -e "select * from web.a1;"
+------+--------+
| id   | name   |
+------+--------+
|    1 | 张三   |
|    1 | 李四   |
+------+--------+
root@wu-virtual-machine:/home/wu#

若加上-B命令,则可以在备份文件的内容中看到 USE ’WEB‘这一行,则在恢复数据时无需指定数据库名

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_02

恢复测试

mysqldump备份不锁表配置 mysqldump备份单表_mysqldump备份不锁表配置_03

备份时候加入 --compact参数 备份文件内容会少很多

mysqldump备份不锁表配置 mysqldump备份单表_数据库_04


mysqldump备份不锁表配置 mysqldump备份单表_数据库_05

mysqldump备份不锁表配置 mysqldump备份单表_mysqldump备份不锁表配置_06

压缩备份

mysqldump备份不锁表配置 mysqldump备份单表_数据库_07

备份多个库 直接加上库名即可

mysqldump备份不锁表配置 mysqldump备份单表_mysql_08

分库备份
正则表达式简单写法

mysqldump备份不锁表配置 mysqldump备份单表_mysqldump备份不锁表配置_09

mysqldump备份不锁表配置 mysqldump备份单表_数据库_10

-r:启用扩展的正则表达式,若与其他选项一起使用,应作为首个选项
^([a-z].*$)
.任意字符
*0次或多次

mysqldump备份不锁表配置 mysqldump备份单表_数据库_11

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_12

mysqldump备份不锁表配置 mysqldump备份单表_mysql_13

也可写脚本执行

第二个变量一定要括起来,因为其后面还有其他不相干的字符

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_14

备份表
第一个是库 后面都表 可接多个表

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_15

分表备份

mysqldump备份不锁表配置 mysqldump备份单表_mysqldump备份不锁表配置_16

备份表结构

mysqldump备份不锁表配置 mysqldump备份单表_mysqldump备份不锁表配置_17

只备份表数据

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_18

mysqldump备份不锁表配置 mysqldump备份单表_数据库_19

mysqldump备份不锁表配置 mysqldump备份单表_数据库_20

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_21

mysqldump备份不锁表配置 mysqldump备份单表_数据库_22

做完全量备份取到标记位置

mysqldump备份不锁表配置 mysqldump备份单表_数据库_23

区别是没有–表示该语句可执行了 从库会用到

恢复数据库

mysqldump备份不锁表配置 mysqldump备份单表_mysql_24

分库恢复

-F 指定分隔符 打印第一个域

mysqldump备份不锁表配置 mysqldump备份单表_mysql_25

mysqldump备份不锁表配置 mysqldump备份单表_数据库_26

先解压 sed ‘#11111111##g’ 中间1111111为不匹配的内容

mysqldump备份不锁表配置 mysqldump备份单表_数据库_27

mysqldump备份不锁表配置 mysqldump备份单表_数据库_28

show processlist 查看数据库的连接情况

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_29

mysqldump备份不锁表配置 mysqldump备份单表_mysql_30

查看数据库的变量

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_31

查看数据库的状态,不加global表示当前会话
Com_select 为select的计数器

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_32

myisam引擎存放数据索引的缓冲区

mysqldump备份不锁表配置 mysqldump备份单表_mysqldump备份不锁表配置_33

1024 byte 32M

mysqldump备份不锁表配置 mysqldump备份单表_数据库_34

重启失效
记得修改配置文件

mysqldump备份不锁表配置 mysqldump备份单表_mysqldump备份不锁表配置_35

退出重启 再进入查看

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_36

开关参数不能改

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_37

mysqldump备份不锁表配置 mysqldump备份单表_数据库_38

mysqldump备份不锁表配置 mysqldump备份单表_mysqldump备份不锁表配置_39

mysqldump备份不锁表配置 mysqldump备份单表_mysql_40

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_41


mysqldump备份不锁表配置 mysqldump备份单表_数据库_42


mysqldump备份不锁表配置 mysqldump备份单表_mysql_43

-r 类似于重定向

mysqldump备份不锁表配置 mysqldump备份单表_mysql_44

查看日志工具mysqlbinlog的使用

mysqldump备份不锁表配置 mysqldump备份单表_备份文件_45