近日,在编译安装MySQL 5.7时,遇到卡在73%的问题。作为一名开发者,我们经常需要从源码编译安装MySQL,因为我们需要根据特定的需要对其进行定制化操作。
在编译过程中,我使用了以下命令:
$ 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命令的选择;同时,需要指定编译器的选择,避免出现编译错误。