Ubuntu 22.04安装MySQL失败求助:dpkg配置出错且OOM进程被终止
解决Ubuntu 22.04中MySQL 8.0安装失败(OOM Killer终止进程)的问题
错误原因分析
从日志核心信息mysql.service: 该单元的一个进程被OOM killer终止可以明确:系统内存不足导致MySQL启动时被内核OOM(Out-of-Memory) Killer强制终止,进而触发安装后脚本执行失败,引发dpkg依赖配置错误。
解决方案步骤
1. 彻底清理损坏的MySQL残留包
- 停止所有MySQL相关服务:
sudo systemctl stop mysql.service - 强制卸载所有MySQL相关包及配置:
sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-* - 删除MySQL数据目录和配置目录:
sudo rm -rf /var/lib/mysql /etc/mysql - 修复dpkg的异常状态:
sudo dpkg --configure -a - 更新APT软件源缓存:
sudo apt-get update
2. 调整MySQL内存配置(避免再次被OOM Killer终止)
针对低内存服务器,降低MySQL的内存占用阈值:
- 创建自定义内存配置文件:
sudo nano /etc/mysql/conf.d/memory.cnf - 添加以下配置(示例针对1GB内存服务器,可根据实际内存调整):
[mysqld] performance_schema = OFF table_definition_cache = 400 table_open_cache = 256 innodb_buffer_pool_size = 128M key_buffer_size = 16M sort_buffer_size = 512K read_buffer_size = 256K read_rnd_buffer_size = 512K join_buffer_size = 128K - 保存并退出编辑器(按
Ctrl+O确认保存,Ctrl+X退出)
3. 重新安装MySQL
- 安装MySQL服务器:
sudo apt-get install mysql-server - 安装完成后验证服务状态:
sudo systemctl status mysql.service
补充:为低内存服务器添加Swap分区
如果服务器物理内存小于1GB,建议添加Swap分区缓解内存压力:
- 创建1GB大小的Swap文件:
sudo fallocate -l 1G /swapfile - 设置Swap文件权限(仅root可访问):
sudo chmod 600 /swapfile - 格式化Swap文件:
sudo mkswap /swapfile - 启用Swap分区:
sudo swapon /swapfile - 设置开机自动挂载Swap:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
内容的提问来源于stack exchange,提问作者Jagdeep Singh
相关产品推荐
相关产品推荐

