先判断你是哪种情况
情况 A:MySQL 服务整个停了
页面报 “Error establishing a database connection”,去宝塔 → 软件商店 → MySQL 发现服务是停止状态
情况 B:MySQL 还在跑,但连接间歇断开
偶尔报错、刷新又好了,或后台操作时报连接丢失
情况 A:MySQL 服务自动停了(最常见!)
根因:服务器内存不够,被 OOM Killer 强杀
这是宝塔 + WordPress 在 1GB~2GB 内存小机上的头号杀手。MySQL 8.0 默认内存胃口很大,一旦内存吃紧,系统直接把 mysqld 干掉。
第一步:验尸确认
看到
Out of memory、Killed process mysqld或 Cannot allocate memory就石锤了。第二步:加 Swap 虚拟内存
宝塔 → 安装 Linux 工具箱 → 打开 → Swap/虚拟内存
|
物理内存
|
建议 Swap
|
|---|---|
|
≤1GB
|
设 1GB
|
|
1~2GB
|
设 1.5GB
|
|
≥2GB
|
至少留 1GB 应急
|
⚠️ 如果是 OVZ 架构的 VPS(uname -r输出带ovz),不支持 Swap,只能升配置。
第三步:压 MySQL 内存参数
宝塔 → 软件商店 → MySQL → 设置 → 配置修改,在
[mysqld]段调整:1GB 内存机器innodb_buffer_pool_size千万别设 1G+,那是自杀式配置。改完点 重启 MySQL。
第四步:开守护进程(兜底)
宝塔 → 数据库 → 右上角 高级设置 → 打开 守护进程 开关
这样即使万一停了也会自动拉起来。
情况 B:MySQL 没停,但连接老断
原因 1:PHP 连接数打满 → Too many connections
宝塔 → 数据库 → 配置修改,确认:
wait_timeout = 300(5分钟)意思是:空闲连接 5 分钟不用就回收,防止 Sleep 连接堆满。改完重启 MySQL。原因 2:WordPress 插件太多 / 慢查询堆积
装太多插件 → 一堆慢 SQL → 连接长时间占用不释放 → 连锁崩。建议:
-
关掉不用的插件(尤其 SEO、统计、备份类)
-
宝塔 → 软件商店 → 你的 PHP → 安装扩展 → 装 opcache(立刻降 CPU/内存压力)
原因 3:wp-config.php的 DB_HOST问题
编辑网站根目录的
wp-config.php,确认:并且
DB_PASSWORD和宝塔 → 数据库 页面显示的密码完全一致(改了数据库密码要同步过来)。⚡ 一键诊断命令(SSH 进服务器跑)
总结优先级
小内存 VPS = 九成是 OOM 杀进程 → 加 Swap + 降innodb_buffer_pool_size就能好一大半。剩下再加守护进程兜底。
你服务器是多大的内存(1GB / 2GB / 4GB)?MySQL 是哪个版本(5.7 还是 8.0)?你看到的具体报错信息是 “Error establishing a database connection” 还是别的?我可以帮你精确定位到是哪一类。
本站注明原创内容,版权归本站所有;未注明原创内容,包括且不限于各类文字、图片、视频、文档、站外链接均由用户匿名投稿或由公开互联网采集整理,版权归原作者所有。本站仅提供展示个人学习交流与索引导航,不作资源存储,不对资源的准确性、合法性及完整性负责。严禁将本站资源用于商业用途或非法传播。若您认为本站内容侵犯了您的权益,请按“工单系统”渠道提交有效证明材料,我们将及时处理。

评论(0)