将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#
指定字符集导出
恢复数据库
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‘这一行,则在恢复数据时无需指定数据库名
恢复测试
备份时候加入 --compact参数 备份文件内容会少很多
压缩备份
备份多个库 直接加上库名即可
分库备份
正则表达式简单写法
-r:启用扩展的正则表达式,若与其他选项一起使用,应作为首个选项
^([a-z].*$)
.任意字符
*0次或多次
也可写脚本执行
第二个变量一定要括起来,因为其后面还有其他不相干的字符
备份表
第一个是库 后面都表 可接多个表
分表备份
备份表结构
只备份表数据
做完全量备份取到标记位置
区别是没有–表示该语句可执行了 从库会用到
恢复数据库
分库恢复
-F 指定分隔符 打印第一个域
先解压 sed ‘#11111111##g’ 中间1111111为不匹配的内容
show processlist 查看数据库的连接情况
查看数据库的变量
查看数据库的状态,不加global表示当前会话
Com_select 为select的计数器
myisam引擎存放数据索引的缓冲区
1024 byte 32M
重启失效
记得修改配置文件
退出重启 再进入查看
开关参数不能改
-r 类似于重定向
查看日志工具mysqlbinlog的使用