分类:数据库

19 篇文章

MySQL权限管理
在 MySQL 里面,grant 语句是用来给用户赋权的。不知道你有没有见过一些操作文档里面提到,grant 之后要马上跟着执行一个 flush privileges 命令,才能使赋权语句生效。 那么,grant 之后真的需要执行 flush privileges 吗?如果没有执行这个 flush 命令的话,赋权语句真的不能生效吗? 我们先来看一下…
MySQL配置参数说明及应用场景
wait_timeout 一个用户成功建立连接后,如果你没有后续的动作,这个连接就处于空闲状态,show processlist 的结果,Command 列显示为“Sleep”的这一行,就表示现在系统里面有一个空闲连接。客户端如果太长时间没动静,连接器就会自动将它断开。这个时间是由参数 wait_timeout 控制,默认值28800秒[8小时]。…
MySQL-忘记root密码
1. 关闭mysqld [root@localhost ~]# systemctl stop mysqld 2. 使用--skip-grant-tables选项重启MySQL服务 [root@localhost ~]# find / -name mysqld /run/mysqld /usr/sbin/mysqld [root@localhost …
MySQL主库故障切换(一主多从)
大多数的互联网应用场景都是读多写少,因此你负责的业务,在发展过程中很可能先会遇到读性能的问题。而在数据库层解决读性能问题,就要涉及到接下来要讨论的架构:一主多从。
MySQL-主备延迟原因及故障切换(一主一备)
正常情况下,只要主库执行更新生成的所有 binlog,都可以传到备库并被正确地执行,备库就能达到跟主库一致的状态,这就是最终一致性。但是,MySQL 要提供高可用能力,只有最终一致性是不够的。 还得提供故障切换的能力,也就是主备切换逻辑。 主备延迟 主备切换可能是一个主动的运维动作,比如软件升级、主库所在机器按计划下线等,也可能是被动的,比如说主库…
MySQL主备一致的保障(binlog)
binlog 在 MySQL 的各种高可用方案上扮演了重要角色。今天介绍的可以说是所有 MySQL 高可用方案的基础。在这之上演化出了诸如多节点、半同步、MySQL group replication 等相对复杂的方案。 binlog 的三种格式对比 binlog有三种格式: statementrowmixed 前两种格式的混合。 为了说明binl…
MySQL-MVVC实现
数据表中的一行记录,其实可能有多个版本 (row), 每个版本有自己的 row trx_id。 1. “快照”在 MVCC 里是怎么工作的? 为说明InnoDB的MVCC(Multi-Version Concurrency Control 多版本并发控制)新建表t并插入两条数据 CREATE TABLE `t` ( `id` int(11) NOT…
【MySQL】索引“失效”的几个场景
在 MySQL 中,有很多看上去逻辑相同,但性能却差异巨大的 SQL 语句。其实我们要知道,对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索功能,从而导致让索引失效,不经意间导致整个数据库的压力变大。
Redis-位图法统计活跃用户
场景:1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃每周评出: 有奖活跃用户: 连续7天活动每月评,等等… 假设[day_n]天,当一个用户上线时, 我们就使用 SETBIT 命令, 将这个用户对应的二进制位设置为 1 : # 此处的 user_id 必须为数字,因为它会被用作索引 SETBIT "[day_n]…
MySQL-中间件mycat
1.初识mycat中间件 Mycat官网 下载 下载连接: wget http://dl.mycat.io/1.6.7.4/Mycat-server-1.6.7.4-test-20191022170541-linux.tar.gz mycat 是java写的所以需要安装jdk 安装JDK 安装之前先检查一下系统有没有自带open-jdk 命令: r…