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
相关产品推荐
相关产品推荐

