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

Ubuntu 22.04环境下MySQL启动失败且服务器升级出错求助

Ubuntu 22.04环境下MySQL启动失败且服务器升级出错求助

兄弟我太懂这种个人服务器突然炸锅的焦虑了!先帮你理清楚问题:你的MySQL应该是被系统自动更新到8.0.33版本了,启动时触发了内置的升级流程,但因为服务器只有1G内存,升级过程中执行系统表更新时触发了锁等待超时,导致升级失败,进而MySQL一直卡在启动循环里。

给你一步步来解决:

第一步:先终止MySQL的自动重启循环

现在systemd一直在反复尝试启动MySQL,先把它停下来:

sudo systemctl stop mysql
sudo systemctl disable mysql

(disable只是临时禁用,后面我们会再开回来)

第二步:跳过升级模式启动MySQL

用安全模式启动,跳过升级流程,先让服务正常跑起来:

sudo mysqld_safe --skip-upgrade &

等个10秒左右,确认MySQL启动成功。

第三步:手动完成MySQL升级

现在执行手动升级命令,完成系统表的更新:

# 执行升级(输入你的root密码)
mysql_upgrade -u root -p

这个命令会帮你处理之前失败的空间参考系统替换等升级操作,这次因为是手动执行且内存压力更小,应该能顺利完成。

第四步:调整MySQL内存配置(适配1G内存服务器)

你的服务器只有1G内存,默认MySQL配置占用内存过高,容易导致资源不足。修改配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到[mysqld]区块,添加或修改以下参数:

innodb_buffer_pool_size = 128M
key_buffer_size = 32M
sort_buffer_size = 2M
read_buffer_size = 2M

保存退出(按Ctrl+O回车确认,再按Ctrl+X退出)。

第五步:重启MySQL服务

先关闭刚才用safe模式启动的MySQL:

mysqladmin -u root -p shutdown

然后重新启用并启动服务:

sudo systemctl enable mysql
sudo systemctl start mysql

第六步:验证是否正常

检查MySQL状态:

sudo systemctl status mysql

如果显示active (running),再试试访问你的WordPress站点,应该能正常连接数据库了。

额外提醒:避免以后再出现自动升级炸锅的情况

Ubuntu的自动更新会默认更新包括MySQL在内的软件包,你可以选择两种方式规避:

  • 关闭自动更新:编辑/etc/apt/apt.conf.d/20auto-upgrades,把APT::Periodic::Unattended-Upgrade "1";改成"0"
  • 只排除MySQL:创建/etc/apt/preferences.d/mysql.pref,添加内容:
    Package: mysql-server mysql-client mysql-common mysql-community-server mysql-community-client
    Pin: release *
    Pin-Priority: -1
    

备注:内容来源于stack exchange,提问作者Steve K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 12:38:07