MysQL超变身!MysQL日志管理、备份与恢复

玩客云刷Armbian 5.9:旧设备变身Linux服务器的完整指南 嵌入式Linux系统为ARM架构设备提供了强大的定制化能力,其核心原理在于通过引导加载程序和内核,将通用操作系统移植到特定硬件上。这项技术能最大化硬件价值,实现低成本、低功耗的持续计算服务,广泛应用于家庭服务器、网络附加存储和物联网网关等场景。本文以玩客云设备为例,详细介绍了如何通过线刷方式,将基于Amlogic S805芯片的旧设备改造为运行Armbian 5.9系统的稳定Linux服务器。整个过程涉及硬件短接、固件烧录、系统配置及Docker部署等关键步骤,并针对S805芯片的特性进行了深度优化,为旧设 阅读详情


MySQL日志管理

MysQL的日志默认保存位置为/usr/local/mysql/data

vim /etc/my.cnf
[mysqld]
错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
log-error=/usr/local/mysql/data/mysql_error.log      #指定日志的保存位置和文件名

通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log

二进制日志(binlog),用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数据恢复,默认已开启
log-bin=mysql-bin                      #也可以log_bin=mysql-bin

慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以找到哪些查询语句执行时间长,以便于优化,默认是关闭的
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5              #设置超过5秒执行的语句被记录,缺省时为10秒


systemctl restart mysqld

mysql -u root -p
show variables like 'general%';            #查看通用查询日志是否开启

show variables like 'log_bin%';            #查看二进制日志是否开启

show variables like '%slow%';              #查看慢查询日功能是否开启
show variables like 'long_query_time';     #查看慢查询时间设置

set global slow_query_log=ON;              #在数据库中设置开启慢查询的方法

MySQL完全备份与恢复

use wolf;
create table if not exists info1 (
id int(4) not null auto_increment,
name varchar(10) not null,
sex char(10) not null,
hobby varchar(50),
primary key (id));

insert into info1 values(1,'user1','male','running');
insert into info1 values(2,'user2','female','singing');

MySQL完全备份

InnoDB存储引擎的数据库在磁盘上存储成三个文件:db.opt(表属性文件)、表名.frm(表结构文件)、表名.ibd(表数据文件)。

物理冷备份与恢复

systemctl stop mysqld
yum -y install xZ
#压缩备份
tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data/
#解压恢复
tar Jxvf /opt/mysql_all_2020-11-22.tar.xz -C /usr/local/mysql/data

mysqldump备份与恢复

1)完全备份一个或多个完整的库(包括其中所有的表)

mysqldump -u root -p[密码] --databases 库名1 [库名2] … > /备份路径/备份文件名.sql               #导出的就是数据库脚本文件

例

mysqldump -u root -p --databases wolf > /opt/wolf.sql
mysqldump -u root -p --databases mysql wolfc > /opt/mysql-wolf.sql

(2)完全备份MysQL服务器中所有的库

mysqldump -u root -p[密码] --all-databases >/备份路径/备份文件名.sql

例:

mysqldump -u root -p --all-databases > /opt/all.sql

(3)完全备份指定库中的部分表

mysqldump -u root -p[密码] 库名 [表名1] [表名2] … > /备份路径/备份文件名.sql

例:

mysqldump -u root -p [-d] wolf info1 info2 > /opt/wolf_info1.sql

#使用"-d"选项,说明只保存数据库的表结构
#不使用"-d"选项,说明表数据也进行备份

(4)查看备份文件

grep -v "^--" /opt/wolf_info1.sql | grep -v "^/" | grep -v "^$"

MySQL完全备份

systemctl start mysqld

恢复数据库

mysql -u root -p -e 'drop database wolf;'
#"-e"选项,用于指定连接MySQL后执行的命令,命令执行完后自动退出
mysql -u root -p -e 'SHOW DATABASES;'

mysql -u root -p < /opt/wolf.sql
mysql -u root -p -e 'SHOW DATABASES;'

恢复数据表

当备份文件中只包含表的备份,而不包含创建的库的语句时,执行导入操作时必须指定库名,且目标库必须存在。

mysqldump -u root -p wolf info1 > /opt/wolf_info1.sql

mysql -u root -p -e 'drop table wolf.info1;'
mysql -u root -p -e 'show tables from wolf;'

mysql -u root -p wolf < /opt/wolf_info1.sql
mysql -u root -p -e 'show tables from wolf;'

MysQL增量备份与恢复

MysQL增量备份

1.开启二进制日志功能

vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
binlog_format = MIXED          #可选,指定二进制日志(binlog)的记录格式为 MIXED
server-id = 1

#二进制日志(binlog)有3种不同的记录格式:STATEMENT(基于SQL语句)、ROW(基于行)、MIXED(混合模式),默认格式是STATEMENT

systemctl start mysqld
ls -l /usr/local/mysql/data/mysql-bin.*

2.可每周对数据库或表进行完全备份

mysqldump -u root -p wolf info1 > /opt/wolf_infol_$(date +%F).sql
mysqldump -u root -p --all-databases wolf > /opt/wolf_$(date +%F).sql

3.可每天进行增量备份操作,生成新的二进制日志文件(例如 mysql-bin.000002)

mysqladmin -u root -p flush-logs

4.插入新数据,以模拟数据的增加或变更

use wolf;
insert into info1 values (3,'user3',' male','game');
insert into info1 values (4,'user4','female','reading');

5.再次生成新的二进制日志文件(例如mysql-bin.000003)

mysqladmin_ -u root -p flush-logs

#之前的步骤4的数据库操作会保存到mysql-bin.000002文件中,之后数据库数据再发生变化则保存在mysql-bin.000003文件中

6.查看二进制日志文件的内容

cp /usr/local/mysql/data/mysql-bin.000002 /opt/
mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/mysql-bin.000002

#--base64-output=decode-rows:使用64位编码机制去解码并按行读取
#-v:显示详细内容

MySQL增量恢复

1.一般恢复
(1)模拟丢失更改的数据的恢复步骤

use wolf;
delete from info1 where id=3;
delete from info1 where id=4;

mysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -u root -p

(2)模拟丢失所有数据的恢复步骤

use wolf;
drop table info1;

mysql -u root -p wolf < /opt/wolf_info1_2020-11-22.sql
mysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -u root -p

2.断点恢复

mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/mysql-bin.000002

例:

at 302
#201122 16:41:16
插入了"user3"的用户数据

at 623
#201122 16:41:24
插入了"user4"的用户数据

(1)基于位置恢复
#仅恢复到操作ID为"623”之前的数据,即不恢复"user4”的数据

mysqlbinlog --no-defaults --stop-position='623' /opt/mysql-bin.000002 | mysql -uroot -p

#仅恢复"user4”的数据,跳过"user3”的数据恢复

mysqlbinlog --no-defaults --start-position='623' /opt/mysql-bin.000002 | mysql -uroot -p

(2)基于时间点恢复
#仅恢复到16:41:24之前的数据,即不恢复"user4"的数据

mysqlbinlog --no-defaults --stop-datetime='2020-11-22 16:41:24' /opt/mysql-bin.000002 |mysql -uroot -p

#仅恢复“user4"的数据,跳过"user3"的数据恢复

mysqlbinlog --no-defaults--start-datetime='2020-11-22 16:41:24' /opt/mysql-bin.000002 |mysql -uroot -p

总结

如果恢复某条SQL语句之前的所有数据,就stop在这个语句的位置节点或者时间点
如果恢复某条SQL语句以及之后的所有数据,就从这个语句的位置节点或者时间点start

KMD 核心功能模块——命令提交与调度:Ring Buffer 与硬件引擎交互 《KMD 中的中断与同步机制——从 Fence 到 Timeline Semaphore 的深度解析》GPU 需要持续接收命令,但硬件执行是流式处理。Ring Buffer 作为。导致 CVE-2022-1234(GPU 挂起),修复后强制检查。:命令提交延迟从 50μs 降至 5μs(20 倍提升)。,CPU 通过写入该地址更新指针(避免直接操作寄存器)。,实现 CPU 与 GPU 的高效协同。),GPU 读指针更新是硬件自动完成的。(通过硬件状态机),实现真正的零等待。AMDGPU 驱动曾因。 阅读详情

相关推荐

5分钟搞懂知识抽取:如何把非结构化数据变成知识图谱的宝藏?

本文通过一个电商评论分析实战案例,详细解析了如何利用spaCy、Neo4j等工具,将非结构化文本数据转化为结构化知识图谱的完整流程。文章重点阐述了知识抽取的核心步骤,包括命名实体识别、关系抽取以及知识存储与查询,帮助读者快速掌握将数据转化为知识宝藏的关键技术。

weixin_29054245的博客 235

如何用闲置安卓设备5步构建零成本家庭服务器?

还在为抽屉里的旧安卓设备感到可惜吗?今天我们将通过amlogic-s9xxx-armbian项目,将这些被遗忘的硬件资源变身为功能强大的家庭服务器。这个开源项目支持Amlogic、Rockchip和Allwinner等多种芯片的设备,让您的旧手机、电视盒子焕发新生,成为高效、低功耗的家庭计算中心。 ## 概念解析:从安卓设备到Linux服务器的华丽转身 ### 核心原理揭秘 **amlogi

gitblog_01130的博客 398

单细胞分析(五)——使用Harmony进行数据整合和去批次

为了保证单细胞RNA测序数据的准确性和可靠性,需要对数据进行样本去批次处理。去批次的方法包括Harmony,SeuratV3等,这些方法可以有效地消除批次效应和技术噪声,并提高单细胞RNA测序数据的质量,为后续的数据分析提供更加可靠的基础。

阅读文献,记录学习笔记 3万+

3步将闲置TX3 Mini电视盒改造为高性能Linux服务器

你是否有一台闲置的TX3 Mini电视盒,正考虑如何处理?这个基于Amlogic S905W芯片的设备,通过**硬件改造**和**开源项目**的魔力,可以变身为功能强大的**Linux服务器**,实现**旧设备利用**的完美解决方案。amlogic-s9xxx-armbian项目正是这样一个专门为Amlogic、Allwinner和Rockchip设备提供Armbian系统支持的开源项目,让你能够

gitblog_01057的博客 952

STM32L431电池供电项目实战:用STOP2模式把功耗降到5uA以下(CubeMX配置详解)

本文详细介绍了如何在STM32L431电池供电项目中利用STOP2模式实现5μA以下的超低功耗设计。通过CubeMX配置、硬件优化和软件策略,成功将农业温湿度监测节点的待机功耗控制在4.7μA,确保CR2032电池供电下3年以上的工作寿命。文章包含完整的低功耗实现路径和实测数据,特别适合物联网边缘设备开发者参考。

weixin_30345577的博客 395

银河麒麟v10-arm版离线安装Portainer

银河麒麟v10-arm版离线安装Portainer

q_hsolucky的博客 3052

终极指南:零成本将旧电视盒子改造成专业Linux服务器

你是否有一台积灰的旧电视盒子?今天我要为你揭示一个惊人的技术魔法——通过amlogic-s9xxx-armbian项目,你可以将这些被遗忘的硬件变身为功能强大的Linux服务器。这个开源项目支持Amlogic、Rockchip和Allwinner三大主流ARM芯片平台,让电视盒子重获新生,成为家庭服务器、开发环境或智能家居控制中心。 想象一下,你的旧电视盒子不再只是播放视频的设备,而是可以运行D

gitblog_00162的博客 880

C++实战指南:使用CodeBlocks构建跨平台wxWidgets窗口应用

本文是一份面向C++初学者的实战指南,详细介绍了如何使用CodeBlocks IDE和wxWidgets框架快速构建跨平台的桌面窗口应用。内容涵盖从环境搭建、项目配置到界面设计、事件处理的全流程,重点讲解了如何利用CodeBlocks的开箱即用支持和wxSmith可视化设计器,高效开发具有按钮、菜单、列表等控件的交互式窗口界面程序,帮助读者轻松入门GUI开发。

weixin_29012677的博客 154

旧游戏本改造家庭服务器:Ubuntu+Docker实战指南

容器化技术通过将应用及其依赖打包成标准单元,实现了环境隔离与快速部署,其核心原理基于操作系统级虚拟化。这项技术为现代软件交付带来了革命性价值,显著提升了开发、测试与部署效率,并广泛应用于微服务架构、持续集成和云原生场景。在家庭与个人计算环境中,容器化同样能发挥巨大潜力,例如将闲置的高性能硬件转化为多功能服务器。本文以一台退役游戏笔记本电脑为例,详细演示如何通过Ubuntu Server与Docker Compose技术栈,将其改造为集媒体中心、私有云盘和智能家居网关于一体的高能效个人服务器,涵盖了从硬件评估

weixin_34342905的博客 407

Hypermesh静力学仿真分析与模态分析-02

hypermesh中对较复杂实体进行静力学分析和模态分析,包含材料属性添加,载荷设置等等

Look_forward_的博客 6782

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

perseverance51博客 1122

实战指南:将老旧机顶盒改造为高效Armbian服务器完整方案

你是否曾想过,家中闲置的机顶盒可以变身为功能强大的Linux服务器?通过Amlogic S9xxx Armbian项目,我们可以将基于Amlogic、Rockchip和Allwinner芯片的电视盒子、开发板等设备刷入Armbian系统,让它们重获新生。这个开源项目支持a311d、s922x、s905x3、s905x2、s912、s905d、s905x、s905w、s905、s905l、rk358

gitblog_00343的博客 404

Windows 11 - 打开操作安全中心提示 “需要使用新应用以打开此 Windowsdefender 链接“ 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开)

Windows 11 - 打开操作安全中心提示 "需要使用新应用以打开此 Windowsdefender 链接" 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开),当您点击任务栏上要关闭安全中心防护设置时,这种情况打不开怎么解决,怎么办,Windows安全中心,病毒和威胁保护,账户保护,防火墙和网络保护,设备安全性。

🏆 前端领域优质创作者 1万+

手把手教你配置MHA高可用,学不会我把电脑寄给你

文章目录什么是 MHAMHA 的组成MHA 的特点搭建 MySQL MHA准备1.Master、Slave1、Slave2 节点上安装 mysql5.72.修改 Master、Slave1、Slave2 节点的主机名3.修改 Master、Slave1、Slave2 节点的 Mysql主配置文件`/etc/my.cnf`并创建软连接4.配置 mysql 一主两从(1)所有数据库节点进行MySQL授权(2)在 Master 节点查看二进制文件和同步点(3)在 Slave1、Slave2 节点执行同步操作(..

Alterego_的博客 3379

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

关于MySQL数据库的管理及进阶用法,Level up!

文章目录数据库的结构常用的数据类型:查看数据库结构查看当前服务器中的数据库查看数据库中包含的表查看表的结构(字段)SQL语句SQL语言分类:创建及删除数据库和表----创建新的数据库创建新的表例:删除指定的数据表删除指定的数据库管理表中的数据记录向数据表中插入新的数据记录查询数据记录修改、更新数据表中的数据记录修改表名和表结构修改表名扩展表结构(增加字段)修改字段(列)名,添加唯一键删除字段案例扩展:数据表高级操作克隆表,将数据表的数据记录生成到新的表中方法一:方法二:清空表,删除表内的所有数据方法一:方.

Alterego_的博客 1080

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MysQL大变身!MysQL进阶之索引、事务与存储引擎

文章目录MysQL索引索引的概念索引的作用创建索引的原则依据索引的分类和创建普通索引直接创建索引修改表方式创建创建表的时候指定索引唯一索引直接创建唯一索引:修改表方式创建创建表的时候指定主键索引创建表的时候指定修改表方式创建组合索引(单列索引与多列索引)全文索引(FULLTEXT)直接创建索引修改表方式创建创建表的时候指定索引使用全文索引查询查看索引各字段的含义删除索引MysoL事物事务的概念事务的ACID特点原子性一致性隔离性事务之间的相互影响分为几种,分别为:Mysql及事物隔离级别:mysql默认的.

Alterego_的博客 352

LAMP架构搭建之MySQL

LAMP架构 LAMP架构搭建之阿帕奇编译安装 文章目录LAMP架构MySQL编译安装MySQL服务1.将安装mysql 所需软件包传到/opt目录下2.安装环境依赖包3.配置软件模块存储引擎选项:4.编译及安装5.创建mysql用户6.修改mysql 配置文件sql_mode常用值7.更改mysql安装目录和配置文件的属主属组8.设置路径环境变量9.初始化数据库11.修改mysql 的登录密码12.授权远程登录 MySQL 作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业

Alterego_的博客 303

关于MySQL数据库的常识,不会吧不会吧,不会还有人不知道吧?

文章目录当今主流数据库介绍SQL Server (微软公司产品)Oracle(甲骨文公司产品)DB2(IBM公司产品)MySQL(MySQL AB公司开发,甲骨文公司收购)数据库系统发展史第一代数据库第二代数据库第三代数据库MySQL数据库介绍MySQL产品阵营第一阵营第二阵营第三阵营下载网址MySQL商业版与社区版MySQL数据库特点关系数据库(E-R)图解非关系数据库介绍非关系型数据库的优点数据库的基本概念数据(Data)表数据库数据库管理系统(DBMS)数据库系统 当今主流数据库介绍 SQL S.

Alterego_的博客 257

MySQL 索引深入理解:B+ 树、二级索引、联合索引与查询优化

理解二级索引后,就可以理解回表了。SELECT *MySQL 的执行过程分为三个步骤。覆盖索引(Covering Index)并不是一种独立的索引类型,而是一种查询效果。SQL 查询需要的所有字段,都能够直接从某个索引中获得,不需要再访问聚簇索引获取其他字段。例如:因为user_id已经包含在二级索引中,所以 MySQL 可以直接返回结果。不需要回表。联合索引(Composite Index)是同时使用多个字段建立的索引。它的排序规则是:首先按照user_id排序。当user_id。

m0_64642997的博客 140

Flink SQL 连接器实战:MySQL Source、Flink CDC 与 JDBC Sink 全解析

提供有界流读取,适合批处理和维表场景,简单直接但无法感知变更。MySQL CDC提供无界流读取,通过「全量快照 + binlog 增量」的方式实现实时捕获,是实时数仓的核心入口,但需要 MySQL 侧正确配置 binlog 和权限。JDBC Sink负责结果回写,关键在于区分仅插入流和更新流,更新流必须依赖主键完成 upsert。掌握这三者的差异,本质上就是掌握了 Flink 中「有界与无界」「追加与更新」这两组最基本的语义。

2401_83857914的博客 472

一篇文章讲清 MySQL 索引:聚簇索引、联合索引、回表与 EXPLAIN

以订单查询为例,拆解 InnoDB 聚簇索引与二级索引的存储和回表路径,解释联合索引的列序、覆盖与 ICP,再用 EXPLAIN 判断扫描、排序和优化器选择,给出可复现的排查方法。

qq_74421990的博客 289

MySQL 中 DISTINCT 与 GROUP BY 哪个效率更高?

DISTINCT与GROUP BY在纯去重场景下,MySQL 8.0 中执行计划通常一致,效率基本相同。老版本(8.0.13 之前)GROUP BY有隐式排序开销,DISTINCT往往更快。需要聚合或HAVING时,只能用GROUP BY。效率的真正决定因素是索引和执行计划,而不是这两个关键字本身。所以,与其问「哪个更快」,不如问「我的查询有没有走对索引」。

2601_96709915的博客 339

4. 关系型数据库-MySQL-Canal 进阶

Canal 是基于 MySQL binlog 的增量数据订阅工具,可实现数据库变更的实时捕获。它通过伪装从库订阅 binlog,无需业务代码侵入,支持缓存同步、搜索索引更新、数据异构、实时入仓及汇总宽表增量更新等场景。使用时需开启 ROW 格式 binlog,配置专用账号,并通过 canal-server 接收事件,下游消费者处理后确认。注意 binlog 保留期、正则过滤写法及全量初始化等关键点,避免数据丢失或误判。

princemilo的博客 146

mysql常见问题汇总

按「现象 → 排查 → 解法」整理,按事故频率排序。

qq_38636133的博客 180

基于 FastAPI+LangChain+LangGraph+Agent+Vue3+MySQL 的房产数据采集与房价预测分析平台

本文介绍一个完整的「房产数据采集+AI房价预测」全栈项目,涵盖FastAPI异步后端、LangGraph Agent智能问答、爬虫采集、机器学习预测与Vue3前端,实现从数据采集到AI交互的闭环。项目融合多技术栈,具备真实业务场景与生产级设计(如降级策略、流式输出、多模型对比),兼具简历亮点与答辩演示优势,可系统性提升工程能力,并附高频面试题解析,是理想的技术综合实践项目。

深耕开发,专注编程实战。分享源码解析、项目搭建、问题排查笔记,沉淀技术,持续更新。 246

MySQL 8.0 双向主从复制故障修复与重建指南

MySQL 8.0 双向主从复制故障修复 SOP:XtraBackup 重建备用节点,解决 GTID 1236 / 历史日志冲突

「YYL DBA手记」 数据库 · 架构 · 运维 · 实战 yyldba.blog.youkuaiyun.com 309
上一篇: LVS+Keepalived高可用群集
下一篇: 手把手教你配置MHA高可用,学不会我把电脑寄给你
Alterego_
博客等级 码龄6年 14粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值