首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 案例:“丢失数据”的谜题

前言 最近偶尔会收到用户反馈数据不见了,数据丢失了的问题。...但是,作为一个以稳定为主的软件,其实丢数据的概率是非常低的,所以这些反馈的问题,是不是真的“丢失数据了”? 问题描述 某日中午接到用户反馈,用业务账号登录数据以后,业务不见了。...登录到数据之后,发现业务是存在的,结合用户的反馈:“业务不见了”,初步判断是业务账号没有权限,用show grants查看之后,发现业务账号的权限只有 USAGE,类似如下效果: mysql> show...> 拓展一下 对于“丢失数据”这个现象来看,如果是“丢失”了整个级别的数据,但是数据本身又一切正常的话,其实有蛮大的可能性和这个案例是一样的问题:权限错误。...严格的来说,这一类问题也有可能是权限错误引起的,因为 MySQL 的权限控制确实可以做到表和列级别,只是现实中一般不会用到。

4K142
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于MYSQL数据管理员密码丢失找回

    一、MYSQL数据密码找回: 密码错误: 关于MYSQL数据管理员密码丢失找回 1.vim /etc/my.cnf 进入配置文件,写入 skip-grant-tables 关于MYSQL数据管理员密码丢失找回...2.重启:systemctl restart mysqld 再进mysql都不要密码了 关于MYSQL数据管理员密码丢失找回 3.设置密码:进入到mysql数据中设置密码 关于MYSQL数据管理员密码丢失找回...数据管理员密码丢失找回 7.输入密码: 关于MYSQL数据管理员密码丢失找回 二、另一个修改密码方法: 1.在ssh中修改密码,需要原密码: mysqladmin -uroot -p'Aa123.123...' password 'QianFeng@123' 关于MYSQL数据管理员密码丢失找回 2.登录mysql: 关于MYSQL数据管理员密码丢失找回 登录成功 3.更加安全的修改密码加密方式: 1....3.更新权限:flush prinleges 关于MYSQL数据管理员密码丢失找回 3.登录到mysql数据: 关于MYSQL数据管理员密码丢失找回 4.登录成功

    2.2K42

    有趣的MySQL(三):更新“丢失”问题

    taskService.updateFinish(subTask.getTaskId); } }   乍一看好像逻辑和代码没有什么问题,但是在实际运行过程中有时会出现查询语句查出来的结果集是更新前的结果集,就好像更新没有生效或者“丢失...现场查看   遇到问题的第一时间是去查看了一下数据是不是更新出了问题,但是查询之后发现数据确实是更新了,接着再去查看了一下当时机器的网络问题,并没有报数据连接异常等问题。...上面说过,项目基本所有的配置都是保持缺省,这里Spring的事务隔离级别和数据保持一致(虽然没有使用到Spring事务管理)。...分析MyBatis执行过程无果,只能将目光投向MySQL服务器的内部执行过程。...MySQL的SQL执行过程   在MySQL服务内部,一条从客户端发起的SQL请求会经过连接器、查询缓存、分析器、优化器以及最终进行实际执行的执行器。

    1.9K30

    【玩转腾讯云】使用数据Mysql如何避免删跑路(数据丢失

    生产环境使用数据最怕的就是数据丢失了,下面针对各种数据丢失场景展开。 场景一:人为操作引起,包括:故意的删跑路、手抖误操作。...所以不要用云服务器自建数据,而是直接使用云数据,云数据已经把这些都做好了,没必要去把别人踩过的坑再踩一遍。 做好监控,第一时间发现事故。...案例二:误删整个或者整张表 cdb3.png 对腾讯云的建议5:如果是整或整张表被误删,这时在选择表时无法操作,需要换个工具先建空或空表,操作被打断、不流畅,而且不熟悉的用户可能不知道要这么操作...建议:表列表不是展示当下存在的表,而是展示冷备文件里有记录的表。...如果表当前不存在也可以恢复,那么恢复新建的表名可以直接填原始名(不带_bak),这样第3.6步为了上线新表的名字互换操作也可以省去。

    7.7K3326

    MySQL实战问题02 mysql是如何保证数据不丢失

    fa只要保证redolog 和 binlog 持久化到磁盘, 就能保证mysql异常重启后, 数据可以恢复. binlog与redolog的写入机制 binlog的写入机制 binlog 的写入逻辑比较简单...两阶段提交细化 写binlog这个步骤实际上是分成两步的 先把binlog从 binlog cache 中写到磁盘上binlog文件; 调用fsync持久化 mysql为了让组提交的效果更好, 实际步骤如下...一些问题: 如果你的 MySQL 现在出现了性能瓶颈,而且瓶颈在 IO 上,可以通过哪些方法来提升性能呢?...这个方法是基于“额外的故意等待”来实现的,因此可能会增加语句的响应时间,但没有丢失数据的风险 将 sync_binlog 设置为大于 1 的值(比较常见是 100~1000)。...因为这时候 binlog 也还在 binlog cache 里,没发给备。crash 以后 redo log 和 binlog 都没有了,从业务角度看这个事务也没有提交,所以数据是一致的。

    2.1K20

    MySQL是如何保证数据不丢失的?

    但是,MySQL作为一个存储数据的产品,怎么确保数据的持久性和不丢失才是最重要的,感兴趣的可以跟随本文一探究竟。...这个时候就涉及到一个问题:如果MySQL服务宕机了,这些在内存中更新的数据会不会丢失?答案是一定会存在丢失现象的,只不过MySQL做到了尽量不让数据丢失。接下来来看一下MySQL是怎么做的。...数据持久化方案可以是可以,但是如果每次的DML操作都要将一个16KB的数据页刷到磁盘,其效率是极低的,估计也就没有人用MySQL了。但是如果不刷新到磁盘,就会发生MySQL服务宕机数据会丢失现象。...总结InnoDB通过以上的操作可以尽可能的保证MySQL丢失数据,最后再总结一下MySQL是如何保障数据不丢失的:为了避免频繁与磁盘交互,每次DML操作先在「Buffer Pool」中的缓存页中执行,...如果在「脏页」刷新到磁盘之前,MySQL宕机了,那么会在下次启动时通过 redo log 将脏页构建出来,做到数据恢复。通过以上步骤,MySQL做到了尽可能的不丢失数据。

    1K52

    面试系列-mysql如何确保数据不丢失

    mysql确保数据不丢失原理分析 我们来思考⼀下,下⾯这条语句的执⾏过程是什么样的: start transaction; update t_user set name = '路⼈甲Java' where...完毕之后,数据是这样的: 内存中p1、p2页被修改了,还未同步到磁盘中,此时内存中数据页和磁盘中数据页是不⼀致的,此时内存中数据页我们称为脏页 对p1、p2页修改被持久到磁盘中的redolog⽂件中了,不会丢失...mysql中还有⼀个binlog,在事务操作过程中也会写binlog,先说⼀下binlog的作⽤,binlog中详细记录了对数据做了什么操作,算是对数据操作的⼀个流⽔,这个流⽔也是相当重要的,主从同步就是使...⽤binlog来实现的,从读取主库中binlog的信息,然后在从中执⾏,最后,从就和主库信息保持同步⼀致了。...binlog的功能,也就是说可以通过java程序来监控数据详细变化的流⽔,这个⼤家可以脑洞⼤开⼀下,可以做很多事情的,有兴趣的朋友可以去研究⼀下;所以binlog对mysql来说也是相当重要的,我们来看

    1.1K10

    MySQL是如何保证数据不丢失的?

    这个时候就涉及到一个问题:如果MySQL服务宕机了,这些在内存中更新的数据会不会丢失? 答案是一定会存在丢失现象的,只不过MySQL做到了尽量不让数据丢失。接下来来看一下MySQL是怎么做的。...数据持久化方案 可以是可以,但是如果每次的DML操作都要将一个16KB的数据页刷到磁盘,其效率是极低的,估计也就没有人用MySQL了。但是如果不刷新到磁盘,就会发生MySQL服务宕机数据会丢失现象。...如果在MySQL服务宕机的时候,「Log Buffer」中的日志没有刷新到磁盘,这部分数据也是会丢失的,在重启后也不会恢复。...总结 InnoDB通过以上的操作可以尽可能的保证MySQL丢失数据,最后再总结一下MySQL是如何保障数据不丢失的: 为了避免频繁与磁盘交互,每次DML操作先在「Buffer Pool」中的缓存页中执行...如果在「脏页」刷新到磁盘之前,MySQL宕机了,那么会在下次启动时通过 redo log 将脏页构建出来,做到数据恢复。 通过以上步骤,MySQL做到了尽可能的不丢失数据。

    9310

    MysqlMysql数据基础

    2.数据操作 2.1显示当前所有的数据 SHOW DATABASES; 具体SQL语句操作: information_schema数据MySQL服务器的数据字典(保存所有数据表和的结构信息...) performance_schema数据MySQL服务器的性能字典(保存全局变量等的设置) mysql 主要负责MySQL服务器自己需要使用的控制和管理信息(用户的权限关系等) sys是系统数据...,包括了存储过程,自定义函数等信息 切记:这4个数据MySQL安装时自动创建的,建议不要随意的删除和修改这些数据,避免造成服务器故障。...这时就出现了decimal和numeric,它们使用其他方式存储小数,是精度更高的浮点数,不会出现精度丢失现象,但是,运算速度会变慢,占用的空间也更多 数值类型可以指定为无符号(unsigned)...mysql中不存在字符;所以可以用‘’或“”表示字符串。 3.3 日期类型 为了方便在数据中存储日期和时间,MySQL提供了表示日期和时间的数据类型。

    6710

    MySQL操作

    删除数据:drop database db_name; 本质就是在/var/lib/mysql删除目录。...因此,我们可以在/var/lib/mysql上创建目录,那么数据层面也一定会产生相应的数据。 同理,在mysql目录中删掉一个目录,数据层面的对应数据也会被删掉。...当然,绝对不应该在文件系统层面创建目录从而生成对应数据,这样是不合理的。因此mysql8.0就禁掉了这个功能,而mysql5.6支持。 三.操纵数据 1....2.数据的恢复 现在,将test1数据删掉: 这样,在/var/lib/mysql的路径下,一定也不存在test1目录。...通过pwd命令,我们知道test1.sql所在的路径: 然后,通过以下恢复命令: mysql> source /root/MySQL/test1.sql; 此时,就可以查看到对应test1的数据及其内容

    15630

    故障分析 | MySQL 5.7 连续 Crash 引发 GTID 丢失

    SET,表示数据中执行了那些 GTID,会实时更新,但是一旦重启就会丢失。...3GDB 调试复现 基于 MySQL 5.7.26 版本,通过 GDB 调试模拟复现了上述问题现象,主库连续崩溃恢复后会丢失最后 1 个 binlog 中的 GTID,引发备 GTID 大于主库。...binlog 作持久化,那么就会丢失第一次崩溃前最后 1 个 binlog 中的 GTID ; #mysql5.7.26 crash启动流程 |main |mysqld_main |ha_recover...连入 MySQL,创建 test,生成 1 个GTID。当前 binlog 为 mysql-bin.000001,mysql.gtid_executed 表为空,GTID 还未持久化。...4总结 在 MySQL 5.7 版本下,因为 GTID 持久化机制的原因,当 MySQL 处于崩溃恢复阶段时,如果再次遇到 Crash,就可能会丢失最后 1 个 binlog 中的 GTID。

    12110

    MySQL案例:一个数据丢失惨案

    前言 最近,有一位朋友突然微信联系我,说MySQL出现了数据丢失的情况;毫无疑问,对于一个DBA而言,这无疑是最令人紧张的一件事情,没有之一;听到这个消息后,我也就立刻投入到问题排查中。...--经确认,实例状态正常 (2)业务是哪个?是否还存在?是否被删除? --经确认,业务库存在 (3)业务是访问哪个表报错?该表是否存在?是否被删除?...--经确认,应用用户拥有业务的所有权限 (5)业务访问是报什么错?...”;那么,MySQL是没有进行数据校验吗?...其实MySQL都有对数据进行校验的,只是在场景2中,因为sql_mode配置有问题,没有设置STRICT_TRANS_TABLES,导致MySQL没有阻止该操作执行,从而导致“数据丢失”惨案。

    2K50

    Mysql 数据(一)—— 初识 Mysql

    Mysql 数据(一)—— 初识 Mysql 本节内容大纲 ?   前一段时间 ,我们完成了 Java 集合与数据结构的学习 , 之后我们将进入 Mysql 数据的课程中。...Mysql 我们之后学习的重点主要是Mysql数据的使用 SQLServer:微软搞得一个数据....Redis…等其他的数据软件 4.关于Mysql   我们在之后的学习里主要是熟悉 Mysql 数据的各种使用及练习   有同学就问了: 为什么 我们不用SQLServer 进行练习呢?   ...我们看到这里知道,Mysql 有客户端也有服务器,但谁才是 数据的主体呢? 其实是 服务器!!...下一篇~ Mysql 数据(二)—— 数据基础 敬请期待~~ 谢谢欣赏! 未完待续…

    8.8K30

    MySQL数据(一):安装MySQL数据

    安装环境: 操作系统版本:RHEL 6.5 安装版本:MYSQL 5.1 升级版本:MYSQL 5.6 一、简述MYSQL 1.什么是数据?...DB DataBase :数据 依照某种数据模型进行组织并存放到存储器的数据集合 DBMS DataBase Manager System :数据管理系统 用来操作和管理数据的大型服务软件...DBS DataBase System :数据系统 即DB+DBMS指带有数据并整合了数据管理软件的计算机系统 2.E-R数据模型 3.常见数据软件服务商 甲骨文:MYSQL...[确定] 6.登陆mysql并查询当前数据 [root@svr5 mysql]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost...需要注意的是这里的root用户不是Linux系统的root用户,而是mysql数据的管理员root。

    22.8K80

    突然掉电,为啥MySQL也不会丢失数据?(收藏)

    MySQL采用buffer机制,避免每次读写进行磁盘IO,提升效率: 《缓冲池(buffer pool)》 《写缓冲(change buffer)》 《日志缓冲(log buffer)》 MySQL的buffer...一页的大小是16K,文件系统一页的大小是4K,也就是说,MySQL将buffer中一页数据刷入磁盘,要写4个文件系统里的页。...如上图所示,MySQL内page=1的页准备刷入磁盘,才刷了3个文件系统里的页,掉电了,则会出现:重启后,page=1的页,物理上对应磁盘上的1+2+3+4四个格,数据完整性被破坏。...自己实验了几十次,仍没能复现“页数据损坏”,在网上找了一个“页数据损坏”时,MySQL重启过程利用DWB修复页数据的图。...启动过程中: (1)InnoDB检测到上一次为异常关闭; (2)尝试恢复ibd数据,失败; (3)从DWB中恢复写了一半的页; 能够通过DWB保证页数据的完整性,但毕竟DWB要写两次磁盘,会不会导致数据性能急剧降低呢

    1.7K20
    领券