# 宝塔面板MySQL无法启动的解决办法

By [Fanly](https://paragraph.com/@fanly) · 2024-11-22

---

如果你也使用[宝塔面板](https://leixue.com/app/bt)，并且恰好遇到 [MySQL](https://leixue.com/app/MySQL) 无法启动的情况，那么我猜你大概率是使用了[宝塔面板](https://leixue.com/app/bt)中 MySQL 管理中的“性能调整”功能，因为[子凡](https://zhangzifan.com/about)我已经在这里栽跟头好几次了，今天就简单的给大家分享一下解决办法。

![MySQL8](https://storage.googleapis.com/papyrus_images/7ec9d5bb409376a5ca28e43ed5d76df1d49537570bc01a8fbfac72e9add709d1.jpg)

MySQL8

[宝塔](https://leixue.com/app/bt)面板 MySQL 数据库无法启动或重启失败的主要问题就是由于 query\_cache\_type、query\_cache\_size 参数导致，MySQL 5.6 默认关闭 Query Cache，但仍支持配置。MySQL 5.7 继续支持 Query Cache，但默认值设为关闭状态。MySQL 从 8.0.0 版本开始移除了 query\_cache\_type、query\_cache\_size 以及整个 Query Cache 功能。也就是说从 MySQL 8.0 起，Query Cache 被彻底废弃。

所以如果你的 MySQL 数据版本为 8.x.x 及以上，并且使用宝塔面板的 MySQL 管理中的优化方案进行过调整切换，那么大概率就是 MySQL 无法启动的原因了，所以解决办法就是将 query\_cache\_size 设置为 0、query\_cache\_type 相关的配置注释掉。

![宝塔面板 MySQL管理](https://storage.googleapis.com/papyrus_images/b35195579425653afbfd6d3d06a9cf2a8b5b803538ef317dd8242eca826993bd.jpg)

宝塔面板 MySQL管理

首先通过性能调整将 query\_cache\_size 设置为 0，然后在配置修改中将 query\_cache\_type 前面加上井号注释掉，其实删除也可以，为了保险起见可以搜索查找一下“query\_cache”开头的都可以注释掉。最后在服务里面启动大概率应该就可以了。

![宝塔面板 MySQL管理](https://storage.googleapis.com/papyrus_images/014e527338f4cd95d63635834e8de7b0475f8beb7c7600ee3e4734d01e56e66c.jpg)

宝塔面板 MySQL管理

Query Cache 是一种用于缓存查询结果的机制，可以提高读取性能。但随着数据库的现代化发展和其他缓存策略（如应用层缓存、Redis、Memcached）的普及，Query Cache 的局限性逐渐显现，Query Cache 的实现依赖全局锁，每次写操作会使缓存失效，导致并发性能下降；数据表的每次更新都会导致相关缓存被清除，频繁更新的表可能让 Query Cache 得不偿失。

如果项目升级到 MySQL 8.0 或更高版本，并且原来依赖 Query Cache，可以考虑使用 Redis、Memcached 或其他内存数据库缓存查询结果，或在代码中管理缓存的更新和失效逻辑，添和优化加索引，使用适当的查询重写技术，以及在应用程序中保存特定的查询结果到内存中，这些方法可以更好地适应现代数据库的需求，同时避免 Query Cache 的弊端。

除非注明，否则均为[泪雪博客](https://zhangzifan.com/)原创文章，禁止任何形式转载

本文链接：[https://zhangzifan.com/bt-mysql-restart.html](https://zhangzifan.com/bt-mysql-restart.html)

---

*Originally published on [Fanly](https://paragraph.com/@fanly/mysql)*
