首页
学习
活动
专区
工具
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数据库管理员密码丢失找回...4.找到配置文件 ,vim /etc/my.cnf 把刚才文件删掉或者注释掉 关于MYSQL数据库管理员密码丢失找回 5.重启mysql 然后再进mysql都需要密码了 6.验证,需要密码 关于MYSQL...数据库管理员密码丢失找回 7.输入密码: 关于MYSQL数据库管理员密码丢失找回 二、另一个修改密码方法: 1.在ssh修改密码,需要原密码: mysqladmin -uroot -p'Aa123.123...' password 'QianFeng@123' 关于MYSQL数据库管理员密码丢失找回 2.登录mysql: 关于MYSQL数据库管理员密码丢失找回 登录成功 3.更加安全修改密码加密方式: 1.

2.2K42
您找到你想要的搜索结果了吗?
是的
没有找到

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

“人生苦短,不如养狗” 一、问题现场   趁着这几天过节,复盘了一下去年一些历史遗留问题,其中有这样一个关于数据库小问题让我忍不住翻出来又回味了一下,下面就让我们一起品味品味。   ...,就好像更新没有生效或者“丢失”了,导致没有成功将对应主任务终止。...现场查看   遇到问题第一时间是去查看了一下数据库是不是更新出了问题,但是查询之后发现数据确实是更新了,接着再去查看了一下当时机器网络问题,并没有报数据库连接异常等问题。...Spring,所以在 getSqlSession 方法每次获取都是一个新sqlSession,这也就代表不会存在查询语句查询结果为上次查询保留在sqlSession缓存,即该问题不会是由于Mybatis...MySQLSQL执行过程   在MySQL服务内部,一条从客户端发起SQL请求会经过连接器、查询缓存、分析器、优化器以及最终进行实际执行执行器。

1.9K30

MySQL 数据库

全局锁 顾名思义,全局锁就是对整个数据库实例加锁。 1. FTWRL MySQL 提供了一个加全局读锁方法,命令是 Flush tables with read lock (FTWRL)。...如果执行 FTWRL 命令之后由于客户端发生异常断开,那么 MySQL 会自动释放这个全局锁,整个库回到可以正常更新状态。...MDL 锁 另一类表级锁是 MDL(metadata lock),这个是 MySQL 5.5 版本引入了 MDL,当对一个表做增删改查操作时候,加 MDL 读锁;当要对表做结构变更操作时候,加...这大大降低了数据库执行性能。 怎么减少行锁对性能影响? 关闭死锁检测 控制并发度,业务层面和数据库层面。...另一种就是修改数据库 server 层源码,在服务端控制并发数量。 拆分更新记录,将一条记录分成多条记录合计。如果这种方式需考虑数值变更临界值判断,比如金额为 0 情况。

4.9K20

MySQL是如何保证数据不丢失

但是,MySQL作为一个存储数据产品,怎么确保数据持久性和不丢失才是最重要,感兴趣可以跟随本文一探究竟。...这个时候就涉及到一个问题:如果MySQL服务宕机了,这些在内存更新数据会不会丢失?答案是一定会存在丢失现象,只不过MySQL做到了尽量不让数据丢失。接下来来看一下MySQL是怎么做。...如果在MySQL服务宕机时候,「Log Buffer」日志没有刷新到磁盘,这部分数据也是会丢失,在重启后也不会恢复。...总结InnoDB通过以上操作可以尽可能保证MySQL丢失数据,最后再总结一下MySQL是如何保障数据不丢失:为了避免频繁与磁盘交互,每次DML操作先在「Buffer Pool」缓存页执行,...因为「脏页」在刷新到磁盘之前可能会存在MySQL宕机等异常行为导致数据丢失,所以MySQL采用日志先行(WAL)机制,将DML操作以日志形式进行记录到「Redo Log」,随后根据innodb_flush_log_at_trx_commit

86452

mysql左连接丢失null值问题

大家好,又见面了,我是你们朋友全栈君。 一、前言 如题所示,我们有的时候直接使用左连接查询,当右表不存在该数据时候,是可以查出带有null列。...可是当在where条件中有右表相关筛选条件时,我们惊奇发现查询结果不带null值了,换句话说就是查出来结果比预期少。 博主之前遇到过这个问题,只不过当时解决了就没记录。...,是的,是被where筛选条件给筛选掉了。...这里解决方案是把右表筛选条件放到前面去,也就是连表地方去。...方式,在连接时就附带上条件,此时不符合条件数据列还是以null值方式展现,并不会被后续where筛选条件给筛选掉。

2.8K20

MySQL如何保证数据不丢失

如何保证数据不丢失? 保证redo log和binlog可以持久化到磁盘,就可以确保MySQL在异常重启后进行数据恢复。...binlog写入机制 binlog写入机制逻辑: 事务执行过程,先把日志写到binlog cache(内存) 事务提交时候(MySQL客户端执行commit指令),再把binlog cache写到...redo log会在以下三个地方存在: 绿色部分,MySQL进程之中,也就是redo log buffer 黄色部分,write到磁盘(存储在Page Cache),此时没有实际调用fsync写入磁盘...(这里写盘动作只是写到Page Cache,不会真正调用fsync) 并行事务在提交时,顺带会将该事务redo log buffer持久化到磁盘。 MySQL 双1配置是?...binlog组提交 上面的组提交是redo log组提交,MySQL为了充分提高性能,binlog也会进行组提交。

98110

Mysql自带数据库信息

当你新建一个mysql服务,并且使用root用户登录mysql(或者你拥有相应权限),会发现mysql预先安装了四个数据库. information_schema mysql perfomance_schema...SCHEMATA:提供了当前mysql实例中所有数据库信息,我们经常使用show databases就是从这里读取数据. TABLES:提供了关于数据库信息(包括视图)。...COLUMNS:提供了表列信息。详细描述了某个字段属于某张表,某个库,以及其他字段名,字段类型,权限,备注等信息. STATISTICS:提供了关于表索引信息。...TABLE_CONSTRAINTS:描述了存在约束表。以及表约束类型等。 KEY_COLUMN_USAGE:描述了具有约束键列。 VIEWS:给出了关于数据库视图信息。...mysql 这是mysql核心库,我们用户,密码及权限等相关信息都存储在这里,所以在修改用户或者添加用户等操作时候,使用grant命令和直接对这个库user表进行增删改查作用是相等.

4.1K20

【MSQL数据库MySQLNULL

mysqlNUll是什么 ? 维基百科是这样说:空值(Null或NULL)是结构化查询语言中使用特殊标记,是对数属性未知或缺失一种标识,用于指示数据库不具值。...由关系数据库模型创作者 E.F.科德所引入。SQL空值是用来满足真实关系数据库管理系统(RDBMS),支持“缺失信息与不适用信息”需求。...另外,数据库统计计算,一般将有空值数据忽略不计。 MYSQL null值和’ '值有什么区别呢?...占用空间区别 null值在mysql占用空间大小也为null,而’ '值在mysql 为0。...总结: 在创建MySQL表示尽量要限制not NULL 且给初始值为 ’ ’ 或 0; NULL值在mysql数据库是占有存储, ’ ’ 是不占用。 如果某一列有NULL值,且以此列创建索引。

3.8K10

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

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

2.1K20

数据库分离附加(附日记丢失处理)

数据库附加(如果日记变动则重新创建日记,此时日记名和逻辑日记名相同)【日记丢失可以这样写】 exec sp_attach_db NewTest,N'E:\SQL\Test.mdf' ?.../dunitian/p/6028838.html 我为NET狂官方面试题-数据库篇答案 http://www.cnblogs.com/dunitian/p/6041323.html 01.有朋友问了数据库...(不是所有情况都适用) http://www.cnblogs.com/dunitian/p/5239049.html 02.把插入数据自动备份到另一个表 ~ 语境:本地和服务器自动同步(非数据同步解决方案...) http://www.cnblogs.com/dunitian/p/5367445.html 03.SQL:指定名称查不到数据衍伸~空格 换行符 回车符批量处理 http://www.cnblogs.com...SQL Server 复制需要有实际服务器名称才能连接到服务器。请指定实际服务器名称。 http://www.cnblogs.com/dunitian/p/6041824.html 06."

1.4K70

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

生产环境使用数据库最怕就是数据丢失了,下面针对各种数据丢失场景展开。 场景一:人为操作引起,包括:故意删库跑路、手抖误操作。...所以不要用云服务器自建数据库,而是直接使用云数据库,云数据库已经把这些都做好了,没必要去把别人踩过坑再踩一遍。 做好监控,第一时间发现事故。...有异地灾备后,达到金融级“两地三心”。如果是金融类、电商类业务,这是必需。 省钱小窍门:如果只是为了备份,灾备实例可以选最低配置,等到容灾切换时再升级配置。...---- 附录:数据恢复操作流程 1 操作之前,告知业务团队,避免他们浪费人力排查问题 2 收回业务程序帐号数据库写权限(从可读可写降级为只读) 3 腾讯云恢复数据(也叫回档、回滚) 3.1 点击云数据库...5 告知业务团队生产环境数据库已恢复正常 下面用2个案例说明第3步如何在腾讯云上恢复数据: 案例一:误删user表一行或一列 假设删除发生在09点00分00.5秒,00秒到00.5秒业务程序有

7.7K3326

7.MySQL数据库约束

create table student( id int not null, name varchar(20), score decimal(3,1) ); 图片 如果在这一列插入null...,就会报错 2. unique 创建表时候在对应变量类型后面加上“unique”字样,表示该列所有行是不能重复,当插入重复数据时候就会报错。...如果表没有记录,自增就从1开始,如果有记录了,自增从上一条记录往下增。 插入数据时: 如果把中间某个数据删了,再插入元素时,刚才删除那个自增主键值不会重复利用。...,那么就会报错 使用外键,会对插入操作效率产生一定影响,同时外键约束也会影响表删除。...以上两个表,class表被其他表依赖着,就无法被删除。

1.8K20

了解 MySQL 数据库各种锁

前言 上篇文章学习了事务隔离级别,其中隔离性是通过锁来实现,篇幅原因将锁单独分开介绍,下面让我们一起学习 MySQL 各种锁。 环境:MySQL 8.0.32 ,InnoDB 存储引擎。...上又来一个意向锁 IX,这两个 IX 是兼容,因为如果这时候要是不兼容,那么就麻烦了,意味着我们在数据库操作两个不同行还会互相阻塞,这显然是不正确。...乐观锁、悲观锁 乐观锁和悲观锁是两种锁设计思想,并不是真正锁。它们其实也不属于 MySQL 数据库范畴,由于我们开发过程中常常和数据库结合使用,所以这里也提一下。...MySQL 行锁,Java synchronized 关键字、ReentrantLock 都是悲观锁思想。...乐观锁是我们在代码层面用程序结合数据库版本号字段来实现。在我们操作数据库增加一个版本号 version 字段,初始值为 1 ,每修改一次 version = version + 1 。

7110

数据库 | MYSQL 视图view详解

同真实表一样,视图包含一系列带有名称列和行数据。但是,视图并不在数据库以存储数据值集形式存在。行和列数据来自由定义视图查询所引用表,并且在引用视图时动态生成。...4视图使用场景 权限控制时候,不希望用户访问表某些含敏感信息列,关键信息来源于多个复杂关联表,可以创建视图提取我们需要信息,简化操作; 5视图示例1-创建、查询 前期数据准备: 现有三张表:用户...select u.id as id, u.account as account, u.name as username from user u; 进行增删改操作如下,操作成功(注意user表其它字段要允许为空...视图与表是一对多关系情况: 如果只修改一张表数据,且没有其它约束(如视图中没有的字段,在基本表是必填字段情况),是可以进行改数据操作,如以下语句,操作成功; 操作之前: ?...,也可以增加附加条件,如: 几点说明(MySQL视图在标准SQL基础之上做了扩展): ALGORITHM=UNDEFINED:指定视图处理算法; DEFINER=`root`@`localhost

3.3K110

MySQL数据库,关系型数据库数据组织

关系型数据库数据组织 关系型数据库,数据组织涉及到两个最基本结构:表与索引。...表存储是完整记录,⼀般有两种组织形式:堆表(所有的记录⽆序存储),或者是聚簇索引表(所有的记录,按照记录主键进⾏排序存储)。...索引存储是完整记录⼀个⼦集,⽤于加速记录查询速度,索引组织形式,⼀般均为B+树结构。...(注意:下⾯实例,使⽤结构为堆表形式,这也是Oracle/DB2/PostgreSQL等数据库采⽤表组织形式,⽽ 不是InnoDB引擎所采⽤聚簇索引表。...记录在索引按照[b,c,d]排序,但是在堆表上是乱序,不按照任何字段排序。

2.2K10

mysql数据库查询数据语句怎么写_mysql数据库多表查询

大家好,又见面了,我是你们朋友全栈君。...要求查询一个学生总成绩。我们根据学号将他们分为了不同组。...命令:mysql>select id, Sum(score) from result group by id; 多表查询 一、等值查询 现在有两个表: 现在要查询年龄小于20岁学生不及格成绩...如果存在左表过滤出来数据,右表没有匹配上,这样的话右表就会出现NULL; (2)右外连接查询 select a.id,score from (select id,age from stu where...如图: 我们发现过滤出来表进行匹配只有两条满足条件(红色代表条件满足),但最后结果却是: 左表不匹配数据改为空,右表过滤出来数据都要存在。

29.8K20
领券