编译安装mysql5.7遇到c++: fatal error: Killed signal terminated program cc1plus
朋友和上司总是问我:为什么不选择阿里云、腾讯云、百度云这些国内云服务商提供的云服务器。每次我都是笑笑。不是不想买,而是,同样的价钱范围,国外的比国内的好啊,还不减配。这不,最近购买了阿里云的2核2G3M的云服务器,编译安装mysql5.7遇到c++: fatal error: Killed signal terminated program cc1plus了。而国外的同样配置的云服务器,使用同样的编译命令却没有出现任何问题,顺利完成编译安装。
在Linux环境下编译遇到“c++: fatal error: Killed signal terminated program cc1plus”问题,个人遇到这个问题的时候,都是因为内存不足导致的。同样是2G内存,为什么阿里云、腾讯云这些国内云服务商销售的云服务器就是内存不足呢?
通过dmesg | grep -i "kill process"查看原因,显示内存不足,如下图:
解决c++: fatal error: Killed signal terminated program cc1plus的方法也很简单:创建SWAP分区!每次购买阿里云、华为云、腾讯云这些国内云服务商的云服务器时,都会遇到内存不足的问题!
创建SWAP分区:
# 创建交换文件(大小可自定义,如 8G、16G)
sudo fallocate -l 4G /swapfilesudo
chmod 600 /swapfilesudo
mkswap /swapfile # 格式化
sudo swapon /swapfile # 启用
使SWAP永久生效,将交换文件添加到/etc/fatab文件:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
其他创建SWAP的方法:
sudo mkdir -p /var/cache/swap #创建分区路径
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=64M count=64 #bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB
sudo chmod 0600 /var/cache/swap/swap0 #设置该目录权限
sudo mkswap /var/cache/swap/swap0 #创建SWAP文件
sudo swpon /var/cache/swap/swap0 #激活SWAP文件
sudo swpon -s #查看SWAP信息是否正确
在编译完之后,如果不想要交换分区了,可以删除,删除交换分区的命令:
sudo swapoff /var/cache/swap/swap0
sudo rm /var/cache/swap/swap0
释放空间命令:sudo swapoff -a
查看当前内存使用情况:fress -m
版权保护: 本站内容采用CC-BY-NC协议且遵守CC-BY-NC-SA和CC-BY-NC-ND协议,转载请保留链接: https://www.guanzhenzuo.com/operation-and-maintenance/70.html