随笔分类 - MySQL
摘要:现象 最近遇到一个有趣的案例:在一个新创建的 MySQL 8.4 实例中,使用用户 u2 登录时,返回了Plugin 'mysql_native_password' is not loaded错误。 $ mysql -h127.0.0.1 -P3316 -uu2 -p123mysql: [Warni
阅读全文
摘要:同一个 binlog,没想到多线程重放竟比单线程慢了四倍多!
阅读全文
摘要:Connection Control 是 MySQL 8.0 引入的一个安全功能插件,后移植到 MySQL 5.7.17 和 5.6.35 版本。 其核心功能是:当客户端因账号或密码错误连续多次登录失败时,服务端会对该客户端的后续请求进行延迟处理,且失败次数越多,延迟时间越长。这一机制能显著增加密码
阅读全文
摘要:去年写的一个小工具,用于在线获取 MySQL binlog 的大小、开始时间、结束时间和持续时长。 什么场景下会用上这个工具呢? 云服务场景,无法登录 MySQL 服务器查看 binlog 的时间戳信息。 主从延迟时,可以使用这个工具来查看 binlog 的大小或者某个时间段 binlog 的写入量
阅读全文
摘要:Java 应用报错 Public Key Retrieval is not allowed,原来是 caching_sha2_password 插件惹的祸!
阅读全文
摘要:本文从源码角度对 HikariCP 中的一些常见参数进行分析,希望能帮助大家更加清晰地理解这些参数的具体含义。
阅读全文
摘要:在数据库连接池的使用中,连接泄漏是一个常见且严重的问题。本文通过分析一个实际的案例,探讨了连接泄漏的危害、产生原因以及如何在 Druid 和 HikariCP 这两种常见的连接池中定位和解决连接泄漏问题。
阅读全文
摘要:问题 在 MySQL 中,查询全局状态变量的方式一般有两种:SHOW GLOBAL STATUS和performance_schema.global_status。 但不知道大家注意到没有,performance_schema.global_status 返回的状态变量数要远远少于 SHOW GLO
阅读全文
摘要:在 MySQL 的日常管理过程中,大家或多或少会遇到权限认证相关的问题。 例如,本来能够正常执行的操作,可能在新增一个账号或授权后就突然失败了。 这种现象往往让人误以为是 bug,但很多时候,其实并不是。 下面,将通过两个案例来阐明 MySQL 权限认证中的具体优先原则,并在此基础上,分析以下问题:
阅读全文
摘要:问题 MGR 中,新节点在加入时,为了与组内其它节点的数据保持一致,它会首先经历一个分布式恢复阶段。在这个阶段,新节点会随机选择组内一个节点(Donor)来同步差异数据。 在 MySQL 8.0.17 之前,同步的方式只有一种,即基于 Binlog 的异步复制,这种方式适用于差异数据较少或需要的 B
阅读全文
摘要:问题 最近碰到一个 case,一台主机上,部署了多个实例。之前使用的是 MySQL 8.0,启动时没有任何问题。但升级到 MySQL 8.4 后,部分实例在启动时出现了以下错误。 [Warning] [MY-012582] [InnoDB] io_setup() failed with EAGAIN
阅读全文
摘要:在 MySQL 中,如果我们想查看实例当前正在执行的 SQL,常用的命令是SHOW PROCESSLIST。 但如果 SQL 过长的话,就会被截断。这时,我们一般会用SHOW FULL PROCESSLIST来查看完整的 SQL。 最近碰到一个 case,发现无论是使用 SHOW PROCESSLI
阅读全文
摘要:最近在分析ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)这个报错的常见原因。 在分析的过程中,不可避免会涉及到 MySQL 身份验证的一些实现细节。 加之之前对这一块就有很多疑问,
阅读全文
摘要:在回答这个问题之前,首先我们看看 MySQL 中有哪些常用的 JDBC 连接池: c3p0 DBCP Druid Tomcat JDBC Pool HikariCP 这些连接池中,c3p0 是一个老牌的连接池,很多流行框架,在其老版本中,都将 c3p0 作为默认的连接池。 DBCP 和 Tomcat
阅读全文
摘要:问题 最近有好几个朋友问,如何将 performance_schema.events_statements_xxx 中的 TIMER 字段(主要是TIMER_START和TIMER_END)转换为日期时间。 因为 TIMER 字段的单位是皮秒(picosecond),所以很多童鞋会尝试直接转换,但转
阅读全文
摘要:预告: 《MySQL实战》即将出版,敬请关注! 有过线上 MySQL 维护经验的童鞋都知道,主从延迟往往是一个让人头疼不已的问题。 不仅仅是其造成的潜在问题比较严重,而且主从延迟原因的定位尤其考量 DBA 的综合能力:既要熟悉复制的内部原理,又能解读主机层面的资源使用情况,甚至还要会分析 binlo
阅读全文
摘要:sysbench是一个开源的、基于LuaJIT(LuaJIT 是 Lua 的即时编译器,可将代码直接翻译成机器码,性能比原生 lua 要高) 的、可自定义脚本的多线程基准测试工具,也是目前用得最多的 MySQL 性能压测工具。 基于 sysbench,我们可以对比 MySQL 在不同版本、不同硬件配
阅读全文
摘要:一文搞懂 MySQL Group Replication 的流控机制~
阅读全文
摘要:MGR 的新主选举算法,在节点版本一致的情况下,其实也挺简单的。 首先比较权重,权重越高,选为新主的优先级越高。 如果权重一致,则会进一步比较节点的 server_uuid。server_uuid 越小,选为新主的优先级越高。 所以,在节点版本一致的情况下,会选择权重最高,server_uuid 最
阅读全文
摘要:mysqldump 和 mydumper 是我们常用的两个逻辑备份工具。 无论是 mysqldump 还是 mydumper 都是将备份数据通过 INSERT 的方式写入到备份文件中。 恢复时,myloader( mydumper 中的恢复工具 ) 是多线程导入,且一个 INSERT 语句中包含多条
阅读全文

浙公网安备 33010602011771号