MYSQL差异备份、恢复与多表查询

-P# //指定数据库监听的端口,这里的#需用实际的端口号代替,如-P3306

备份所有数据库(全备):

[root@localhost ~]# mysqldump -uroot -predhat123 --all-databases > all-$(date ‘+%Y%m%d’).sql

[root@localhost ~]# ls

all-20210825.sql anaconda-ks.cfg

恢复完全备份:

[root@localhost ~]# mysql -uroot -predhat123 < all-20210825.sql

备份指定数据库:

[root@localhost ~]# mysqldump -uroot -predhat123 --databases hhr > hhr-$(date ‘+%Y+%m%d’).sql

[root@localhost ~]# ls

all-20210825.sql anaconda-ks.cfg hhr-20210825.sql

恢复指定库:

[root@localhost ~]# mysql -uroot -predhat123 < hhr-xxx.sql

备份指定数据库中的某一个表:

[root@localhost ~]# mysqldump -uroot -predhat123 hhr student > student-$(date ‘+%Y+%m%d’).sql

[root@localhost ~]# ls

all-20210825.sql hhr-20210825.sql

anaconda-ks.cfg student-20210825.sql

方法1:恢复表(指定库名)

[root@localhost ~]# mysql -uroot -predhat123 hhr < student-xxx.sql

方法2:在指定的库里恢复表

MariaDB [hhr]> source student-xxx.sql

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

差异备份与恢复


开启MySQL服务器的二进制日志功能

//在数据库中查看二进制日志是否开启

MariaDB [(none)]> show variables like ‘log_bin’;

±--------------±------+

| Variable_name | Value |

±--------------±------+

| log_bin | OFF |

±--------------±------+

1 row in set (0.001 sec)

//在配置文件中开启二进制日志

[root@hhr ~]# vim /etc/my.cnf.d/mariadb-server.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mariadb/mariadb.log

pid-file=/run/mariadb/mariadb.pid

server-id=1 #设置服务器标识符

log-bin=mysql_bin #开启二进制日志功能

//重启服务

[root@localhost ~]# systemctl restart mariadb.service

[root@hhr ~]# ls /var/lib/mysql/

aria_log.00000001 ibdata1 multi-master.info mysql_bin.000005 mysql_upgrade_info

aria_log_control ib_logfile0 mysql mysql_bin.000006 performance_schema

hhr ib_logfile1 mysql_bin.000003 mysql_bin.index

ib_buffer_pool ibtmp1 mysql_bin.000004 mysql.sock

//登录数据库查看二进制日志已经开启

MariaDB [(none)]> show variables like ‘log_bin’;

±--------------±------+

| Variable_name | Value |

±--------------±------+

| log_bin | ON |

±--------------±------+

1 row in set (0.001 sec)

//在数据库中查看有哪些二进制日志文件

MariaDB [(none)]> show binary logs;

±-----------------±----------+

| Log_name | File_size |

±-----------------±----------+

| mysql_bin.000003 | 1446 |

| mysql_bin.000004 | 907269 |

| mysql_bin.000005 | 365 |

| mysql_bin.000006 | 342 |

±-----------------±----------+

4 rows in set (0.000 sec)

对数据库进行完全备份

//查看数据库数据

MariaDB [hhr]> show databases;

±-------------------+

| Database |

±-------------------+

| hhr |

| information_schema |

| mysql |

| performance_schema |

±-------------------+

4 rows in set (0.000 sec)

MariaDB [hhr]> show tables;

±--------------+

| Tables_in_hhr |

±--------------+

| jj |

| student |

±--------------+

2 rows in set (0.000 sec)

MariaDB [hhr]> select * from jj;

±-----±---------+

| id | name |

±-----±---------+

| 1 | zhangsan |

| 2 | lisi |

| 3 | wangwu |

±-----±---------+

3 rows in set (0.000 sec)

MariaDB [hhr]> select * from student;

±—±------------±-----+

| id | name | age |

±—±------------±-----+

| 1 | tom | 20 |

| 2 | jerry | 23 |

| 3 | wangqing | 25 |

| 4 | sean | 28 |

| 5 | zhangshan | 26 |

| 7 | lisi | 50 |

| 8 | chenshuo | 10 |

| 9 | wangwu | 100 |

| 10 | qiuyi | 15 |

| 11 | qiuxiaotian | 20 |

±—±------------±-----+

10 rows in set (0.000 sec)

//存放密码

[root@hhr ~]# cat .my.cnf

[client]

user=root

password=redhat123

//完全备份

[root@hhr ~]# mysqldump --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs > all-20210826.sql

[root@hhr ~]# ls

all-20210825.sql all-20210826.sql student-20210825.sql

//添加新内容

MariaDB [(none)]> select * from hhr.jj;

±-----±---------+

| id | name |

±-----±---------+

| 1 | zhangsan |

| 2 | lisi |

| 3 | wangwu |

±-----±---------+

3 rows in set (0.001 sec)

MariaDB [hhr]> insert jj values (4,‘aixinjueluo’);

Query OK, 1 row affected (0.001 sec)

MariaDB [hhr]> select * from jj;

±-----±------------+

| id | name |

±-----±------------+

| 1 | zhangsan |

| 2 | lisi |

| 3 | wangwu |

| 4 | aixinjueluo |

±-----±------------+

4 rows in set (0.000 sec)

//修改内容

MariaDB [hhr]> update jj set id = 10 where name = ‘zhangsan’;

Query OK, 1 row affected (0.001 sec)

Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [hhr]> select * from jj;

±-----±------------+

| id | name |

±-----±------------+

| 10 | zhangsan |

| 2 | lisi |

| 3 | wangwu |

| 4 | aixinjueluo |

±-----±------------+

4 rows in set (0.000 sec)

mysql差异备份恢复

模拟误删数据

MariaDB [hhr]> drop database hhr;

Query OK, 2 rows affected (0.005 sec)

MariaDB [(none)]> show databases;

±-------------------+

| Database |

±-------------------+

| information_schema |

| mysql |

| performance_schema |

±-------------------+

3 rows in set (0.000 sec)

刷新创建新的二进制日志

[root@hhr ~]# mysql -e “show binary logs;”

±-----------------±----------+

| Log_name | File_size |

±-----------------±----------+

| mysql_bin.000007 | 867 |

±-----------------±----------+

1 row in set (0.000 sec)

[root@hhr ~]# ls /var/lib/mysql/

aria_log.00000001 ibdata1 ibtmp1 mysql_bin.000007 mysql_upgrade_info

aria_log_control ib_logfile0 multi-master.info mysql_bin.index performance_schema

ib_buffer_pool ib_logfile1 mysql mysql.sock

//刷新创建新的二进制日志

[root@hhr ~]# mysqladmin flush-logs

[root@hhr ~]# ls /var/lib/mysql/

aria_log.00000001 ibdata1 ibtmp1 mysql_bin.000007 mysql.sock

aria_log_control ib_logfile0 multi-master.info mysql_bin.000008 mysql_upgrade_info

ib_buffer_pool ib_logfile1 mysql mysql_bin.index performance_schema

[root@hhr ~]# mysql -e “show binary logs;”

±-----------------±----------+

| Log_name | File_size |

±-----------------±----------+

| mysql_bin.000007 | 914 |

| mysql_bin.000008 | 484032 |

±-----------------±----------+

恢复完全备份

[root@hhr ~]# mysql < all-20210826.sql

[root@hhr ~]# mysql -e “show databases;”

±-------------------+

| Database |

±-------------------+

| hhr |

| information_schema |

| mysql |

| performance_schema |

±-------------------+

4 rows in set (0.000 sec)

[root@hhr ~]# mysql -e “show tables from hhr;”

±--------------+

| Tables_in_hhr |

±--------------+

| jj |

| student |

±--------------+

[root@hhr ~]# mysql -e “select * from hhr.jj;”

±-----±---------+

| id | name |

±-----±---------+

| 1 | zhangsan |

| 2 | lisi |

| 3 | wangwu |

±-----±---------+

恢复差异备份


//在数据库中查看有哪些二进制日志文件

[root@hhr ~]# mysql

MariaDB [hhr]> show binary logs;

±-----------------±----------+

| Log_name | File_size |

±-----------------±----------+

| mysql_bin.000007 | 914 |

| mysql_bin.000008 | 483675 |

±-----------------±----------+

2 rows in set (0.000 sec)

//在数据库中查看正在写入的是哪个二进制日志文件

MariaDB [hhr]> show master status;

±-----------------±---------±-------------±-----------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

±-----------------±---------±-------------±-----------------+

| mysql_bin.000008 | 483675 | | |

±-----------------±---------±-------------±-----------------+

1 row in set (0.000 sec)

//检查误删数据库的位置在什么地方

MariaDB [hhr]> show binlog events in ‘mysql_bin.000007’;

±-----------------±----±------------------±----------±------------±---------------------------------------------------------+

| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |

±-----------------±----±------------------±----------±------------±---------------------------------------------------------+

| mysql_bin.000007 | 4 | Format_desc | 1 | 256 | Server ver: 10.3.28-MariaDB-log, Binlog ver: 4 |

| mysql_bin.000007 | 256 | Gtid_list | 1 | 299 | [0-1-253] |

| mysql_bin.000007 | 299 | Binlog_checkpoint | 1 | 342 | mysql_bin.000006 |

| mysql_bin.000007 | 342 | Binlog_checkpoint | 1 | 385 | mysql_bin.000007 |

| mysql_bin.000007 | 385 | Gtid | 1 | 427 | BEGIN GTID 0-1-254 |

| mysql_bin.000007 | 427 | Query | 1 | 527 | use hhr; insert jj values (4,‘aixinjueluo’) |

| mysql_bin.000007 | 527 | Xid | 1 | 558 | COMMIT /* xid=461 */ |

| mysql_bin.000007 | 558 | Gtid | 1 | 600 | BEGIN GTID 0-1-255 |

| mysql_bin.000007 | 600 | Query | 1 | 711 | use hhr; update jj set id = 10 where name = ‘zhangsan’ |

| mysql_bin.000007 | 711 | Xid | 1 | 742 | COMMIT /* xid=463 */ |

| mysql_bin.000007 | 742 | Gtid | 1 | 784 | GTID 0-1-256 |

| mysql_bin.000007 | 784 | Query | 1 | 867 | drop database hhr |

| mysql_bin.000007 | 867 | Rotate | 1 | 914 | mysql_bin.000008;pos=4 |

±-----------------±----±------------------±----------±------------±---------------------------------------------------------+

13 rows in set (0.000 sec)

//使用mysqlbinlog恢复差异备份

这里的784是你开始删除库之前的修改过数据的位置

[root@hhr ~]# mysqlbinlog --stop-position=784 /var/lib/mysql/mysql_bin.000007 | mysql

[root@hhr ~]# mysql -e “select * from hhr.jj;”

±-----±------------+

| id | name |

±-----±------------+

| 10 | zhangsan |

| 2 | lisi |

| 3 | wangwu |

| 4 | aixinjueluo |

±-----±------------+

多表查询

===================================================================

Group By的使用


概述

“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。

Group By与聚合函数

| 函数 | 作用 |

| — | :-- |

| sum(列名) | 求和 |

| max(列名) | 最大值 |

| min(列名) | 最小值 |

| avg(列名) | 平均值 |

| count(列名) | 统计记录数 |

//创建表

MariaDB [hhr]> create table test (id varchar(20),name varchar(20), company varchar(20));

Query OK, 0 rows affected (0.007 sec)

//查看表

MariaDB [hhr]> show tables;

±--------------+

| Tables_in_hhr |

±--------------+

| student |

| test |

±--------------+

2 rows in set (0.000 sec)

//查看表结构

MariaDB [hhr]> desc test;

±--------±------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±--------±------------±-----±----±--------±------+

| id | varchar(20) | YES | | NULL | |

| name | varchar(20) | YES | | NULL | |

| company | varchar(20) | YES | | NULL | |

±--------±------------±-----±----±--------±------+

3 rows in set (0.001 sec)

//插入数据

MariaDB [hhr]> insert test values(1,‘a’,‘jia’),(1,‘a’,‘jia’),(1,‘a’,‘jia’),(1,‘a’,‘jia’),(1,‘a’,‘yi’),(1,‘b’,‘yi’),(1,‘b’,‘yi’),(1,‘b’,‘yi’);

Query OK, 8 rows affected (0.001 sec)

Records: 8 Duplicates: 0 Warnings: 0

//查看数据

MariaDB [hhr]> select * from test;

±-----±-----±--------+

| id | name | company |

±-----±-----±--------+

| 1 | a | jia |

| 1 | a | jia |

| 1 | a | jia |

| 1 | a | jia |

| 1 | a | yi |

| 1 | b | yi |

| 1 | b | yi |

| 1 | b | yi |

±-----±-----±--------+

8 rows in set (0.000 sec)

MariaDB [hhr]> select * from student;

±—±------------±-----+

| id | name | age |

±—±------------±-----+

| 1 | tom | 20 |

| 2 | jerry | 23 |

| 3 | wangqing | 25 |

| 4 | sean | 28 |

| 5 | zhangshan | 26 |

| 7 | lisi | 50 |
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
s/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

[外链图片转存中…(img-xsbBC8BI-1713248576840)]

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

[外链图片转存中…(img-XfxUvDBQ-1713248576840)]

  • Kafka的集群
  • 第一个Kafka程序
  • [外链图片转存中…(img-ro7q38oi-1713248576840)]

afka的生产者

[外链图片转存中…(img-BExz5MGK-1713248576841)]

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

[外链图片转存中…(img-N4aD88Gs-1713248576841)]

[外链图片转存中…(img-qWGscMSm-1713248576841)]

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

[外链图片转存中…(img-nd8KO1vm-1713248576841)]

  • Kafka实战之削峰填谷

[外链图片转存中…(img-0dBdjR5i-1713248576841)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值