- 博客(168)
- 收藏
- 关注
原创 MySQL性能分析工具(perf+Flame Graphs)
本文介绍了使用perf和FlameGraphs工具分析MySQL性能的方法。perf用于采集性能数据,生成perf.data文件后转换为文本格式。FlameGraphs将处理后的数据转换为直观的SVG火焰图,可视化展示MySQL函数调用情况。这种方法能清晰呈现函数调用频率和执行路径,比文本分析更易发现性能瓶颈和优化点,为MySQL性能调优提供有力支持。
2025-12-04 14:05:49
210
原创 MySQL8.0.30 版本中redo log的变化
摘要:MySQL 8.0版本对redo log功能进行了多项优化。8.0.30支持动态调整redo log容量,通过innodb_redo_log_capacity参数控制总大小;8.0.17引入redo log归档功能,满足审计合规需求;8.0.16新增redo log加密支持;8.0.21后可以临时禁用redo log以提升数据加载速度,但存在数据丢失风险。这些改进增强了MySQL在日志管理、安全性和性能方面的能力,为不同场景提供了更灵活的配置选项。
2025-10-29 17:17:20
672
原创 gh-ost菜鸟教程
摘要:gh-ost是GitHub开发的MySQL在线表结构迁移工具,采用无触发器的设计降低主库负载。其核心原理是创建影子表(_gho)和应用日志表(_ghc),通过并行数据拷贝和binlog应用实现平滑迁移。安装需先配置Go环境,通过GitHub或Gitee获取源码编译。实战案例演示了删除全文索引的操作流程:创建临时表、执行DDL、数据迁移,最后通过原子性rename完成表切换,并清理临时表。整个过程会检查外键、触发器等约束条件,保证数据一致性。
2025-10-22 17:24:51
747
原创 MySQL中的数据类型占用空间和范围
本文总结了MySQL常用的数据类型及其存储特性,包括:整数类型(TINYINT到BIGINT)、浮点类型(FLOAT/DOUBLE)、精确小数(DECIMAL)、日期时间类型(DATE/TIME/DATETIME/TIMESTAMP/YEAR)、字符串类型(CHAR/VARCHAR/TEXT系列)、二进制类型(BINARY/VARBINARY/BLOB系列)、特殊类型(ENUM/SET/BIT)以及空间和JSON数据类型。每种类型详细列出了存储空间、有符号和无符号的取值范围,为数据库设计提供参考依据。
2025-10-14 11:27:16
369
原创 py_innodb_page_info.py表空间分析
摘要: py_innodb_page_info.py是由姜承尧开发的MySQL表空间分析工具,包含三个Python2文件,需同目录运行。该工具解析MySQL5.7的.ibd文件,显示各页类型(如B-tree节点、文件空间头等)及其分布统计。演示输出展示了11个页的详细类型信息,包括6个B-tree数据页(叶子节点)、2个空闲页等。注意不兼容Python3和MySQL8.0+版本。
2025-09-30 15:34:34
704
原创 MySQL5.7.44编译安装
本文记录了在CentOS Stream 9系统中源码编译安装MySQL 5.7.44的过程,重点解决了与现有MySQL 8.0.37的路径冲突问题。安装过程包括创建专用用户、下载源码、处理依赖项(boost_1_59_0、libtirpc-devel、rpcgen)、配置编译选项、设置环境变量以及初始化数据库。特别强调了为避免与默认安装的MySQL 8.0.37冲突,将5.7.44版本安装到自定义路径(/usr/local/mysql5.7.44),并配置了独立的数据目录和配置文件。文章详细记录了编译过程中
2025-09-30 14:42:37
806
原创 python2.7.9编译安装
本文介绍了Python源码编译安装的完整步骤:首先从官网下载对应版本的tgz包并解压;然后进入目录运行configure脚本配置安装路径;接着执行make编译和make install安装;之后配置环境变量或设置别名以便调用;最后验证版本确认安装成功。该方法适用于不同Python版本的编译安装,关键步骤包括源码编译、路径配置和环境变量设置。通过绝对路径或别名方式均可调用新安装的Python解释器。
2025-09-26 18:46:56
245
原创 MySQL中的空间碎片率计算分析
MySQL中的空间碎片分为数据碎片和索引碎片两种类型,主要由增删改操作导致。碎片会降低数据库性能,增加I/O操作,浪费存储空间。通过删除表数据并分析统计信息,可观察到高达99.98%的碎片率,使用OPTIMIZE TABLE命令可重建表空间使碎片率归零。主从节点间由于复制机制和多线程应用顺序差异,可能出现碎片率不一致的情况。InnoDB存储引擎通过预留空间来优化插入性能和减少碎片化,这是data_free不会完全归零的主要原因。
2025-09-26 13:49:40
1306
原创 从Miniflux 到 NextFlux:一步升级,拥抱现代化阅读体验
本文介绍了Miniflux极简RSS阅读器的部署及其第三方客户端Nextflux的安装配置。Miniflux功能强大但界面朴素,Nextflux在保持核心功能的同时提升了视觉体验。详细讲解了Docker部署步骤,包括跨域问题解决方案(配置CORS_ORIGINS环境变量)、HTTPS域名访问注意事项,以及完整的docker-compose.yml文件示例。作者分享了已稳定运行的测试环境(https://nextflux.mingliang.net.cn),并为读者提供测试账号。文章针对部署过程中可能遇到的端
2025-09-12 00:00:58
1170
原创 Miniflux 安全升级:绑定域名并开启 HTTPS
Miniflux通过绑定二级域名miniflux.mingliang.net.cn并配置HTTPS实现安全升级。文章以阿里云和宝塔面板为例,详解域名解析、Nginx反向代理及Let's Encrypt免费证书部署流程。完成配置后,用户可通过加密链接访问基于Go开发的轻量级RSS平台,享受高效、安全的阅读体验,资源占用低且支持多设备同步,感兴趣者可申请测试账号体验功能。
2025-09-08 16:47:18
1141
原创 Miniflux – RSS 订阅
Miniflux是一款用Go语言开发的极简开源RSS阅读器,具有单二进制文件、低内存占用和内置Web界面等特点。它支持Fever API,提供简洁无广告的阅读体验,适合追求效率的用户。部署方式灵活,可通过Docker或Docker Compose快速安装,仅需PostgreSQL数据库支持。主要特性包括极简设计、高性能、轻量化和现代技术栈。部署完成后,用户可轻松订阅RSS源,如博客文章,并支持多设备同步和文章收藏功能。该服务也可提供免费试用账号供体验。
2025-09-07 20:21:27
767
1
原创 MySQL抛出的Public Key Retrieval is not allowed
MySQL连接报错"PublicKeyRetrieval is not allowed"是由于使用sha256_password或caching_sha2_password插件时,密码哈希缓存缺失导致。解决方法包括:1)设置allowPublicKeyRetrieval=true参数;2)修改账号为mysql_native_password插件。但第一种方法存在中间人攻击风险,可能被窃取密码,建议谨慎使用。此错误通常发生在服务重启、HA切换或执行flush privileges后。
2025-09-05 20:28:43
585
原创 MySQL JDBC 驱动未找到
摘要:针对新手在IDEA中使用JDBC连接MySQL时遇到的"MySQLJDBC驱动未找到"报错,提供解决方案:1)下载并解压驱动;2)在项目目录新建lib文件夹,复制jar文件到该目录;3)右键jar文件选择"添加为库";4)确认后即可成功连接。该方法简单有效,适合初学者快速解决问题。(99字)
2025-09-05 14:10:14
325
原创 MySQL中的Got an error reading communication packet
MySQL错误日志中"Got an error reading communication packets"提示表明客户端异常关闭连接,而非数据库主动关闭。测试发现mycli工具连接后会触发该错误(Aborted_clients增加),而mysql客户端不会。抓包分析显示mycli主动发送[FIN,ACK]关闭连接,并伴随RST标志,可能与自动重连机制有关。建议排查应用侧连接关闭行为,该错误通常源于客户端异常断开而非数据库配置问题。
2025-09-03 10:52:33
547
原创 Meteor主题友链页面自研
本文介绍了为Meteor主题开发的独立友情链接管理系统。针对原生功能的不足,该系统创新性地实现了: 独立友链页面,支持分类展示和图文混排 前端提交表单+后台审核的闭环管理 智能头像显示(三种状态处理) 实时搜索、美观卡片式布局 后台待审提示功能(数字气泡+红色标记) 系统包含完整的PHP模板、CSS样式和JS脚本,通过Ajax实现无刷新提交,显著提升了友链管理效率。
2025-09-01 20:49:56
603
原创 纯代码实现登录页面的DIY
本文介绍了如何通过定制化开发优化WordPress原生登录页面。作者利用login_head和login_footer钩子,对登录页面进行全面改造,包括替换默认logo为品牌标识、重新设计表单布局和配色方案、添加背景图片和CSS3动画效果,并优化移动端响应式布局。文章提供了核心实现代码,包括login-style.php和login-style.css两个文件,其中PHP文件负责加载样式和移除默认logo链接,CSS文件则实现页面美化和布局调整。最终效果使登录页面与网站主题风格统一,提升了后台管理的专业性和
2025-09-01 20:45:02
270
原创 MySQL8.0.14 双密码机制
MySQL 8.0.14引入双密码策略提升安全性,允许设置主密码和次级密码。主密码用于日常操作,次级密码用于紧急访问,实现平滑密码轮换。通过RETAIN CURRENT PASSWORD保留旧密码,DISCARD OLD PASSWORD最终移除旧密码,确保服务不中断,特别适合大规模数据库环境。该功能从MySQL 8.0.14版本开始支持。
2025-08-06 13:57:09
405
原创 MySQL会话连接数消耗内存分析
MySQL 8.0.28引入新特性监控和限制会话内存使用,通过设置global_connection_memory_tracking=1启用后,可以查看所有连接的内存消耗总量(Global_connection_memory)。测试显示每个空闲连接约消耗8.05KB内存。参数connection_memory_limit可限制单会话内存使用(默认无限制),设置上限(如2MB)后,超限连接会被自动关闭,有效防止内存耗尽风险。该特性有助于优化数据库资源管理,特别适合高并发场景下预防OOM问题。
2025-07-31 15:34:59
852
原创 【MySQL内置数据库】performance_schema
MySQL 8.0.37的performance_schema数据库包含111张表,用于监控数据库服务器性能。这些表可分类为:账户信息表(如accounts)、锁与索引表(如data_locks)、内存使用表(如memory_summary_global_by_event_name)、I/O操作表(如file_summary_by_event_name)、线程与连接表(如threads)、SQL语句与事务表(如events_statements_current)、等待事件表(如events_waits_cu
2025-07-31 14:32:59
675
原创 mysql_innodb_cluster_metadata源数据库
摘要:本文介绍了MySQL InnoDB Cluster/ClusterSet的系统目录库mysql_innodb_cluster_metadata中的关键表结构及其作用。该库记录了集群拓扑、节点信息、Router状态等核心数据,禁止手动修改。主要包含4类表:1)集群总体信息表(clusters/clustersets),2)实例清单表(instances/v2_instances),3)GR集群视图表(v2_gr_clusters),4)Router配置表(routers/v2_routers)。文章还提
2025-07-22 17:23:49
1016
原创 MySQL Innodb Cluster配置
MySQL高可用集群(MGR)搭建指南摘要 本文详细介绍了在三台服务器上搭建MySQL Group Replication(MGR)高可用集群的全过程。主要内容包括:1) 环境规划,三台主机分别安装MySQL 8.0.30、MySQL Shell和MySQL Router;2) 创建统一用户并授权;3) 配置各节点环境变量;4) 使用MySQL Shell初始化MGR集群,包括创建集群、添加节点和解决UUID冲突问题;5) 安装配置MySQL Router实现读写分离;6) 进行连接测试、数据同步验证和故障
2025-07-14 16:56:36
1164
原创 MySQL Innodb Cluster介绍
MySQL InnoDB Cluster是官方提供的高可用数据库解决方案,整合了MySQL Shell、MySQL Router和Group Replication三大组件。它通过AdminAPI简化集群管理,支持自动故障转移和路由请求,相比传统主从复制具有更高可靠性。该方案以单主或多主模式运行,能够在线调整拓扑结构,确保业务连续性。InnoDB Cluster为企业提供了易于管理、高可用的数据库服务,正成为越来越多企业的首选方案。
2025-07-14 16:52:52
359
原创 SELECT ... INTO OUTFILE和LOAD DATA INFILE
MySQL提供了SELECT...INTO OUTFILE和LOAD DATA INFILE语句进行数据导入导出。前者将查询结果导出到服务器文件,可指定文件路径、字符集、字段格式和行终止符等;后者从文件导入数据到数据库表,可配置字段分隔符、字符集等参数。使用需具备相应权限,注意文件路径的可访问性、字符集匹配及数据安全。示例演示了创建表、插入数据、导出为CSV文件及重新导入的全过程。这两个命令是数据库与文件系统间高效数据交换的重要工具。
2025-07-12 22:26:28
426
原创 MySQL密码管理器“mysql_config_editor“
MySQL密码管理工具mysql_config_editor简介 mysql_config_editor是MySQL官方提供的命令行工具,可将数据库连接信息(用户名、密码、主机等)加密存储在~/.mylogin.cnf文件中。主要功能包括:加密存储敏感信息、支持多组配置管理、自动读取配置。使用时通过--login-path参数调用指定配置,避免在命令行暴露明文密码。该工具通过文件权限控制(0600)和内容加密保障安全性,典型应用于脚本备份和多实例管理等场景,是MySQL的"密码管理器",
2025-07-12 00:54:56
575
原创 mysql_multi多实例管理
摘要:本文介绍了MySQL多实例配置的详细步骤。首先在/etc/my.cnf文件中配置多个实例(3306、3307、3308)的参数,包括端口、数据目录、日志路径等。然后创建数据目录并初始化实例,设置环境变量。着重解决了实例关闭失败的问题,通过重置root密码(123456)和修改配置文件添加认证信息,最终成功实现多实例管理。关键步骤包括:实例初始化、密码重置、环境变量配置以及mysqld_multi工具的使用。
2025-07-09 18:55:07
534
原创 MySQL二进制包安装
本文摘要:详细介绍了MySQL 8.0.30在Linux系统上的安装配置过程。包括:创建mysql8用户组和用户;下载并解压MySQL安装包到/usr/local目录;设置环境变量;初始化数据库;配置my.cnf文件;添加MySQL服务并设置开机启动;最后修改root用户初始密码。安装过程涉及权限管理、目录配置和服务部署等关键步骤,为MySQL 8的部署提供了完整指导。
2025-07-09 18:54:13
220
原创 MySQL中的分区表
MySQL分区技术摘要 MySQL分区技术将大表数据按规则划分为多个物理分区,提升管理效率和查询性能。主要分区类型包括: 范围分区(Range):按连续值范围划分,适合时间序列数据 列表分区(List):按离散值列表划分 哈希分区(Hash):均匀分布数据 键值分区(Key):基于主键/唯一键自动分区 每种分区类型支持变种(如Range Columns/List Columns)和复合分区(子分区)。分区管理操作包括: 新增/删除分区 重组分区数据 分区维护(重建/检查/优化) 分区优势: 跨磁盘存储大规模
2025-07-09 14:39:21
539
原创 MySQL中的隐式主键和隐藏列
MySQL 8.0.30+版本引入了sql_generate_invisible_primary_key参数,当设为ON时会为无主键的InnoDB表自动添加不可见主键列(my_row_id)。默认OFF状态下,InnoDB仍会创建隐藏的GEN_CLUST_INDEX聚集索引以满足存储引擎要求。阿里云AliSQL通过show_ipk_info参数控制隐式主键显示。需注意:开启该功能后不允许修改或删除自动生成的主键,也不允许多重主键定义。该特性仅适用于InnoDB引擎表,不影响其他存储引擎。
2025-06-11 00:01:09
993
原创 MySQL中event突然不执行问题分析
MySQL事件调度器状态检查方法 摘要:本文介绍了检查MySQL事件调度器状态的几种方法:1)查看事件调度器变量状态;2)检查具体事件是否启用;3)查看事件创建语法和执行频率;4)通过information_schema.events表查询事件详情。事件相当于定时任务,即使关联的存储过程不存在也会继续执行(但会报错),当事件突然停止执行时,通常与event_schema有关。关键参数包括EVENT_TYPE和ON_COMPLETION,但后者不会因错误自动禁用事件。
2025-06-10 17:45:12
471
原创 MySQL中的CONVERT_TZ() 函数
MySQL的CONVERT_TZ()函数用于跨时区时间转换,语法为CONVERT_TZ(时间值,源时区,目标时区)。使用时需确保时区表已加载(通过mysql_tzinfo_to_sql命令),并注意时区名称大小写敏感。函数支持UTC、Asia/Shanghai等时区名称或±HH:MM偏移量格式,无效输入返回NULL。该功能需要MySQL5.5+版本,适用于处理国际化应用中的时间转换需求。
2025-06-10 14:45:51
931
原创 Wordpress自定义登录页面插件
LoginPress是一款专为WordPress设计的登录页面定制插件,通过可视化编辑器无需代码即可自定义登录页面的Logo、背景、表单样式、按钮、错误提示等元素。该插件采用实时预览模式,支持响应式设计,并提供专业版功能如Google字体和reCAPTCHA验证。用户可免费使用基础功能,付费版解锁更多高级选项,是打造个性化登录界面的高效工具。插件操作简单,适合所有技术水平的用户快速美化网站登录体验。
2025-05-31 00:36:55
228
原创 WordPress通过简码插入bilibili视频
本文介绍了如何在WordPress网站中通过短代码轻松插入B站视频的方法。针对B站视频iframe代码复杂的问题,作者提供了一个自定义短代码解决方案:将代码片段添加到主题的functions.php文件或使用WPCode插件管理,即可通过[vbilibili av=xxx]或[vbilibili bv=xxx]的简单格式嵌入视频。该方法会自动生成响应式iframe框架,支持AV/BV号两种格式(二选一),并设置合理的安全权限防止页面跳转。文章还推荐使用WPCode插件来避免主题更新导致的代码丢失问题,详细说
2025-05-31 00:33:35
1320
原创 WPCode添加代码启用后网站报错怎么处理
摘要:当WPCode插件添加的代码导致网站报错时,可通过两种方式处理:1)通过FTP重命名或删除插件文件夹(需备份),但重新启用后问题可能重现;2)更推荐使用安全模式访问/wp-admin/?wpcode-safe-mode=1,在该模式下禁用或删除问题代码片段。后者能有效解决问题且操作更安全。(149字)
2025-05-31 00:30:32
477
原创 深入解析 MySQL 中的 SHOW_ROUTINE 权限
MySQL中的SHOW_ROUTINE权限用于控制用户查看存储过程和函数定义的权限。该权限允许用户通过特定语句查看存储过程/函数定义及相关属性,并访问INFORMATION_SCHEMA.ROUTINES表。在MySQL8.0.20及以上版本中,该权限作为全局权限通过GRANT语句授予;在8.0.20以下版本则需授予全局SELECT权限才能实现相同功能。SHOW_ROUTINE权限提供了比全局SELECT更精细的权限管理,增强了数据库安全性和管理灵活性。
2025-05-24 02:06:59
673
原创 MySQL中TCP和套接字SSL加密连接行为分析
SSL认证通过在客户端和云数据库服务器之间建立加密通道,确保数据传输的安全性,防止信息被窃听、篡改或冒充。MySQL支持SSL加密,通过配置相关参数(如have_openssl、have_ssl、require_secure_transport等)来控制SSL的使用。默认情况下,MySQL会尝试使用加密连接,即使客户端未明确指定SSL参数。然而,套接字连接默认不加密,若账号设置为REQUIRESSL且未指定SSL参数,连接将失败。通过SSL加密,MySQL能够有效提升数据传输的安全性和完整性,尽管可能会增加
2025-05-19 22:15:49
1482
原创 关于网站提交搜索引擎
提交网站给搜索引擎是提升网站可见性和加快索引速度的关键步骤。通过手动提交,可以帮助搜索引擎更快地发现和索引新内容,同时及时通知搜索引擎网站内容的更新。此外,提交网站还可以帮助解决索引问题,如排名下降或内容未出现在搜索结果中。为了提高SEO效果,除了提交网站外,还应关注内容质量、结构优化和外部链接。网站地图(sitemap)作为一种图形化展示网站结构和内容的工具,能够提升用户体验并辅助SEO。使用插件如YoastSEO可以自动生成sitemap。对于Bing和百度等搜索引擎,提供了专门的提交入口和工具,如Bi
2025-05-13 21:40:27
1163
原创 深入 MySQL 查询优化器:Optimizer Trace 分析
MySQL的Optimizer Trace功能用于深入分析SQL查询的优化过程,帮助开发者理解查询执行计划的选择。该功能默认关闭,因为开启后可能导致约10%的性能下降。Optimizer Trace通过三个主要阶段(join_preparation、join_optimization、join_execution)详细记录SQL语句的准备、优化和执行过程。在优化阶段,系统会评估不同索引和扫描方式的成本,选择最优执行计划。通过调整相关参数(如optimizer_trace_enabled、optimizer_
2025-05-13 17:21:53
1422
原创 wordpress主题分享
文章介绍了三款功能强大的开源免费WordPress主题:Argon、Sakurairo和Akina-Siren。Argon主题以现代简约设计、高度自定义和响应式布局为特点,适合个人博客和企业网站。Sakurairo主题以其二次元风格和丰富的自定义选项受到动漫爱好者的喜爱。Akina-Siren主题则以其多功能性和二次元风格,提供个性化设置和增强用户体验的功能。文章强调,在选择和使用主题时,应保持初衷,将美化视为实现目标的手段,而非目的本身。
2025-05-12 22:15:51
1288
转载 选主算法、多版本兼容性及滚动升级|深入浅出MGR
本文介绍MGR的选主算法,以及当MGR集群中有多个不同版本混搭时,如何才能正常运行,有什么注意事项。
2025-04-02 17:04:28
116
原创 MGR高可用脚本
在之前的讨论中,我们探讨了基于容器节点的 MySQL Group Replication 配置。在后续的测试过程中,我们发现如果某个容器节点意外挂掉,该节点会自动从组内退出。这可能会导致组复制的可用性和稳定性受到影响。为了确保组复制的高可用性,本文将介绍如何实现对容器节点可用性的实时检测,以及在节点意外挂掉后如何自动拉起并重新加入组复制。
2025-04-02 16:47:20
349
gh-ost-linux-amd64 无锁在线DDL(2025-10-22官方构建)
2025-10-25
宝塔wp tools找不到数据库,急!!!
2025-05-11
MySQL8.0.37主从复制IO中断
2024-09-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅