在Linux上安裝MySQL、PHP時,服務器內存較小的情況下(0.5G或者1G內存時),會出現“c : fatal error: Killed signal terminated program cc1plus compilation “錯誤,可以通過增大服務器SWAP大小來解決,本文是解決辦法。
對於make編譯,如果是阿里雲centos主機內存小於2G的,可能會在make編譯到45%、63%時報錯;如果是騰訊雲centos主機內存為1G時,可能會在make編譯到64%時報錯。
===============阿里雲測試結果(引用)==================
c++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2
================騰訊雲測試結果(實測)=================
g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [sql/CMakeFiles/sql_gis.dir/gis/crosses.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql_gis.dir/all] Error 2
make: *** [all] Error 2
以上均為內存不足所致,可通過設置2G交換分區來解決該問題。
解決方案:
#獲取要增加的2G的SWAP文件塊
dd if=/dev/zero of=/swapfile bs=1k count=2048000
#創建SWAP文件
mkswap /swapfile
#激活SWAP文件
swapon /swapfile
#查看SWAP信息是否正確
swapon -s
#添加到fstab文件中讓系統引導時自動啟動
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
swapfile文件的路徑在/var/下,編譯完后, 如果不想要交換分區了, 可以刪除。
刪除交換分區:
swapoff /swapfile
rm -rf /swapfile
至此,問題解決。