---
title: 编译和安装MySQL时执行make -j 96命令后报错的解决方法
description: "编译和安装MySQL过程中，执行make -j 96命令时，执行进度到55%时提示如下信息。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/troubleshooting/trouble/boostkit_database_troublecase_028.html
sourcePath: /source/zh/kunpengdbs/troubleshooting/trouble/boostkit_database_troublecase_028.html
indexId: 137382ae242b41f69e790534e32430f8bbe9ea0e83656ba4bfe8011247ce106684
---
# 编译和安装MySQL时执行make -j 96命令后报错的解决方法

#### 问题现象描述

编译和安装MySQL过程中，执行make -j 96命令时，执行进度到55%时提示如下信息。

```
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
make[2]: *** [plugin/group_replication/CMakeFiles/group_replication.dir/build.make:759: plugin/group_replication/CMakeFiles/group_replication.dir/src/applier_channel_state_observer.cc.o] Error 4
make[2]: Leaving directory '/home/mysql-8.0.17/build'
[ 55%] Built target protoc
make[2]: Leaving directory '/home/mysql-8.0.17/build'
make[1]: *** [CMakeFiles/Makefile2:2452: storage/perfschema/CMakeFiles/perfschema.dir/all] Error 2
make[2]: Leaving directory '/home/mysql-8.0.17/build'
make[1]: *** [CMakeFiles/Makefile2:6059: plugin/group_replication/CMakeFiles/group_replication.dir/all] Error 2
make[1]: Leaving directory '/home/mysql-8.0.17/build'make: *** [Makefile:161: all] Error 2
```


#### 关键过程、根本原因分析

虚拟机运行内存不足，而template的大量扩展需要足够的内存。


#### 结论、解决方案及效果

- 方法一：如果是在虚拟机上，先关掉虚拟机，再调节虚拟机内存大小，最后重新启动虚拟机即可。
- 方法二：通过临时使用交换空间（swap space）来解决。交换文件（swap file）是一种虚拟内存技术，用于在物理内存不足时将部分数据存储到硬盘上，以便释放物理内存。

  1. 创建并使用交换空间。例如创建大小为16GB的交换文件。
    1 2 3 sudo dd if=/dev/zero of=/swapfile bs=64M count=256 sudo mkswap /swapfile sudo swapon /swapfile

    上述命令中，count的值就是增加的交换空间的大小，bs的值是块大小，所以交换空间大小是bs*count=16GB。

  2. 重新执行编译安装MySQL命令。
  3. 在编译安装完成后，建议关闭交换空间，以释放磁盘空间。
    1 2 sudo swapoff /swapfile sudo rm /swapfile

  4. 可选：如果创建了临时空间之后仍提示相同的报错，可能是因为    1
中分配的空间不够大，可以先执行    3
，然后调整“count”参数的值，最后重新执行    1
以分配更大的空间。
