AWS EC2 t4g.nano实例上MySQL Server 8.0安装失败问题求助
AWS EC2 t4g.nano实例上MySQL Server 8.0安装失败问题求助
看起来你遇到的问题根源很清晰——从日志里的A process of this unit has been killed by the OOM killer就能看出来,你的t4g.nano实例内存不够用了!
t4g.nano实例只有512MB的内存,而MySQL 8.0默认的配置参数(比如缓冲池、连接数设置)是针对常规服务器的,启动时会占用远超512MB的内存,系统为了避免崩溃,就触发了OOM Killer把MySQL进程杀掉了,这就是安装后启动失败的原因。
下面是具体的解决步骤:
1. 先清理失败的安装残留
首先把之前安装失败的MySQL相关包和残留文件清理干净,避免后续安装出问题:
sudo apt purge mysql-server-8.0 mysql-server-core-8.0 mysql-client-8.0 mysql-client-core-8.0 mysql-common sudo apt autoremove --purge sudo rm -rf /var/lib/mysql /etc/mysql /var/log/mysql
2. 提前配置MySQL的低内存适配参数
在重新安装之前,先创建一个适配小内存实例的配置文件,让MySQL启动时占用更少的内存:
创建并编辑配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
添加或修改以下参数(覆盖默认配置):
[mysqld] # 核心缓冲池,设置为内存的1/8左右(512MB的话64M刚好) innodb_buffer_pool_size = 64M # 减少排序和读取缓冲的大小 sort_buffer_size = 16K read_buffer_size = 16K read_rnd_buffer_size = 16K # 限制最大连接数,小内存实例不需要太多连接 max_connections = 10 # 关闭性能_schema,节省内存 performance_schema = OFF # 减小日志文件大小 innodb_log_file_size = 16M # 调整日志刷新策略,平衡性能和内存 innodb_flush_log_at_trx_commit = 2
保存退出(Ctrl+O,回车,Ctrl+X)
3. 重新安装MySQL
现在可以重新安装MySQL了:
sudo apt update && sudo apt install mysql-server-8.0
4. 验证MySQL服务状态
安装完成后,检查服务是否正常启动:
sudo systemctl status mysql
如果看到active (running)就说明成功了!
额外优化:开启Swap分区
为了进一步缓解内存压力,你可以给实例添加Swap虚拟内存:
# 创建1GB的Swap文件 sudo fallocate -l 1G /swapfile # 设置权限 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
这样调整后,MySQL就能在t4g.nano的小内存环境下正常运行了。
备注:内容来源于stack exchange,提问作者Ryland Goldman
相关产品推荐
相关产品推荐

