You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DigitalOcean WordPress MySQL数据库连接时断时续故障排查

WordPress执行MySQL选库命令后随机断连修复方案

该问题完全可修复,不存在不可逆损坏。单纯执行use 数据库名命令仅切换当前命令行会话的操作上下文,不会修改任何库表结构或数据。

故障根因

DigitalOcean默认的WordPress一键镜像给MySQL配的最大连接数本来就不高,你用root登进MySQL之后如果不主动退出,会一直占用一个持久连接,叠加WooCommerce运行本身的连接消耗,很容易把可用连接数占满。后续站点的访问请求拿不到连接就会排队等待,表现出来就是随机断连、单次超时20秒以上、间歇又能正常访问。

修复步骤

  • 第一步:调整MySQL最大连接数
    登录MySQL后依次执行以下命令,查看当前连接占用和最大连接数配置:
    show status like 'Threads_connected';
    show variables like 'max_connections';
    
    如果返回的已连接线程数接近最大连接数数值,直接执行命令临时调大连接数:
    set global max_connections = 200;
    
    临时调整后编辑MySQL配置文件(默认路径/etc/mysql/mysql.conf.d/mysqld.cnf),在[mysqld]配置段下追加max_connections = 200,保存后执行systemctl restart mysql让配置永久生效,避免服务重启后配置还原。
  • 第二步:清理异常长事务/持锁会话
    登录MySQL后执行以下命令,查看是否存在长时间未提交的持锁事务:
    select * from information_schema.innodb_trx\G
    
    如果返回结果中存在执行时长超过10秒的事务,记录对应trx_mysql_thread_id字段的数值,执行kill 对应ID;杀掉异常会话即可。操作完成后直接输入exit退出你当前打开的MySQL命令行会话,释放占用的连接。
  • 第三步:核对站点配置正确性
    进入WordPress站点根目录(DigitalOcean默认镜像路径为/var/www/html/),打开wp-config.php文件,核对以下配置项和实际数据库信息一致:
    • DB_NAME值应为wordpress
    • DB_USER、DB_PASSWORD为站点专用的数据库账号密码,不要和你要修改的站点管理员账号密码混淆
  • 第四步:重启Web服务验证
    以上操作完成后,执行对应命令重启PHP和Web服务清空连接缓存:
    # Nginx环境执行
    systemctl restart php8.1-fpm nginx
    # Apache环境执行
    systemctl restart php8.1-fpm apache2
    

注意事项

  • 后续通过命令行操作数据库时,操作完成及时退出MySQL会话,不要长期挂着命令行窗口占用连接。
  • 修改WordPress站点管理员账号密码时,不要改动数据库本身的账号权限,只需要修改wp_users表内对应用户的user_pass字段即可,密码要存入对应哈希密文,不要直接存明文。

内容的提问来源于stack exchange,提问作者sylargaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:42:20