淘先锋技术网

首页 1 2 3 4 5 6 7

近日,在编译安装MySQL 5.7时,遇到卡在73%的问题。作为一名开发者,我们经常需要从源码编译安装MySQL,因为我们需要根据特定的需要对其进行定制化操作。

编译安装mysql5。7卡在73%

在编译过程中,我使用了以下命令:


$ cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=/usr/local/mysql/src/boost \
-DWITH_SSL=system \
-DWITH_PROTOBUF=system \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DDOWNLOAD_BOOST=1

然后使用以下命令进行编译和安装:


$ make && make install

但是,在编译进行到73%时,出现了以下错误:


CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: Could not find cmake module file:/root/mysql/mysql-5.7.33-linux-glibc2.12-x86_64/CMakeFiles/3.20.2/CMakeCCompiler.cmake
CMake Error: Could not find cmake module file:/root/mysql/mysql-5.7.33-linux-glibc2.12-x86_64/CMakeFiles/3.20.2/CMakeCXXCompiler.cmake

经过一番排查后,发现问题出在编译器选择上。在使用cmake编译时,需要指定编译器的选择。如果没有指定,cmake会自动选择系统默认的编译器,可能会出现问题。

我使用以下命令将编译器设置为gcc:


$ cmake . \
-DCMAKE_C_COMPILER=/usr/bin/gcc \
-DCMAKE_CXX_COMPILER=/usr/bin/g++

然后重新进行编译和安装,问题顺利解决。

总结:在编译安装MySQL时,注意cmake命令的选择;同时,需要指定编译器的选择,避免出现编译错误。