gcc编译出现internal compiler error: Killed的原因及解决方案解决

场景

最近想配置一个LNMP环境在Centos7上装mysql8.0的时候出现一个问题

internal compiler error: Killed (program cc1plus)

这个是个报错,一开始不明白是为啥,后来谷歌了一下,找到了原因 --- 内存不足,因为在gcc编译的时候会大量使用内存,而我的服务器是个学生价淘来的一个CPU一核的服务器,在我装mysql编译的时候出现了这个问题

 

解决方案

既然内存不足的话,那我们就来加一个交换分区(swap)吧

1.创建分区文件

#服务器上的交换分区建议创建物理内存的一般即可
dd if=/dev/zero of=/swapfile bs=1k count=1024000

2.生成swap文件系统

mkswap /swapfile

3.激活swap文件

swapon /swapfile

4.配置自动启动项,让服务器重启时能够自动挂载交换分区

#打开系统文件
vi /etc/fstab

添加如下行
/swapfile  swap  swap    defaults 0 0

5.如果系统默认设置很小的话,会不积极使用swap,所以我们需要调整一下

sysctl vm.swappiness=100

好了这样再编译一次mysql的时候就会好的,编译过程就不会因为内存过小而终止,这个过程我们可以使用再打开一个客户端使用top命令来查看内存及交换空间的使用率

shell脚本

#!/bin/bash

dd if=/dev/zero of=/swapfile bs=1k count=1024000
mkswap /swapfile
swapon /swapfile

echo "/swapfile  swap  swap    defaults 0 0" >> /etc/fstab

sysctl vm.swappiness=100

 

你可能感兴趣的:(Linux)