Mysql服务自动停止导致网站连接不到数据库而打不开如何解决教程

本文作者:小爱哥哥 发布时间:2025年9月8日 浏览次数:11

这几天一直在忙,晚上随手点开站点看一眼。发现连接不到数据库。

Mysql服务自动停止导致网站连接不到数据库而打不开如何解决教程

赶紧去查看数据库,一看在停止状态。赶紧开启:
Mysql服务自动停止导致网站连接不到数据库而打不开如何解决教程

然后去mysql服务,查看设置:

Mysql服务自动停止导致网站连接不到数据库而打不开如何解决教程

设置框 内,找到错误日志:调出来。一行一行看。
Mysql服务自动停止导致网站连接不到数据库而打不开如何解决教程

不看不知道。一看吓一跳。网站竟然一天没打开了。今天是9月8号。竟然在9月7号上午10点的时候已经停止了mysql服务。
Mysql服务自动停止导致网站连接不到数据库而打不开如何解决教程

9 月 7 日出现了两次完全相同的致命错误(07:45 和 10:39),错误链清晰:

[MY-012681] [InnoDB] mmap(137035776 bytes) failed; errno 12:
InnoDB 尝试通过内存映射(mmap)分配 137MB 内存失败,errno 12 对应的就是 「Out of memory(内存不足)」。
[MY-012956] [InnoDB] Cannot allocate memory for the buffer pool:
直接说明「无法为 InnoDB 缓冲池分配内存」—— 缓冲池是 MySQL 核心内存区域,用于缓存数据和索引,分配失败会直接导致 InnoDB 引擎初始化失败。
后续连锁错误:引擎初始化失败 → 数据字典初始化失败 → 服务中止(Aborting)。

此外,日志中反复出现的 option 'max_allowed_packet': unsigned value 107374182400 adjusted to 1073741824 是个小问题(你配置的 max_allowed_packet 太大,MySQL 自动调整为 1GB),但不影响内存不足的核心问题。

然后我找到mysql设置内的——性能调整选项如下:

Mysql服务自动停止导致网站连接不到数据库而打不开如何解决教程

我服务器是4G的。所以我调的相对大一点

 innodb_buffer_pool_size(InnoDB 缓冲池大小)

InnoDB 缓冲池是 MySQL 中最核心的内存区域,用于缓存表数据和索引,对性能影响极大。4GB 内存的服务器,可将其调整为 1536MB(1.5GB),这样既能保证 InnoDB 有足够的缓存空间提升性能,又不会过度占用内存。

max_connections(最大连接数)

当前设置为 500,对于一般规模的网站,这个数值可能偏大,会占用较多内存(每个连接都需要一定的内存资源)。可调整为 200,在满足正常并发连接需求的同时,减少不必要的内存消耗。
最后保存。然后重启mysql服务。应该没问题了。但是还需要自己多查看测试几天。看看情况 。如果数据库服务还有停止的事情发生,
你可以再调出来错误日志查看。是为什么。针对问题来调整 解决。
- THE END -

本文来源:非特殊说明,本站文章均为原创  |  本站部分文章来源于网络,若侵犯了您的权益,请附说明联系删除

共有 0 条评论---(要不...来一句吧,实再不行抽一根也中!)