arm linux环境编译mysql5.7.29

编译过程

安装工具、依赖包

编译工具:cmake、make、devtoolset-7

依赖包:openssl-devel、ncurses-devel、libaio-devel、boost-1.59.0(boost-1.59.0源码:boost_1_59_0.tar.gz)

安装cmake

yum install -y cmake

安装依赖包

  • yum install -y openssl-devel ncurses-devel libaio-devel
  • boost-1.59.0.tar.gz放置到/usr/src,不需要解压

安装devtoolset-7

需要的repository:CentOS-SCLo-scl-rh

添加CentOS-SCLo-scl-rh:yum install -y centos-release-scl

安装devtoolset-7:yum install -y devtoolset-7

解压源码包

源码下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29.tar.gz

下载到/usr/src并解压

开始编译

  1. 在源码目录下新建编译目录/usr/src/mysql-5.7.29/build
  2. cd /usr/src/mysql-5.7.29/build
  3. 执行“CC=/opt/rh/devtoolset-7/root/bin/gcc CXX=/opt/rh/devtoolset-7/root/bin/g++ cmake .. -DWITH_BOOST=/usr/src -DCMAKE_INSTALL_PREFIX=/opt/mysql-5.7.29 -DBUILD_CONFIG=mysql_release”

    • 如果没有boost源码包,可使用参数-DDOWNLOAD_BOOST=1自动下载,-DWITH_BOOST指定boost源码保存的目录
    • cmake过程如果发生错误,重新cmake前需要删除编译目录下的CMakeCache.txt文件
    • mysql官方参考文档:https://dev.mysql.com/doc/internals/en/cmake.html

    cmake成功,编译目录下生成Makefilearm linux环境编译mysql5.7.29_第1张图片

  4. make -j4 && make install
    编译成功的mysql5.7.29被安装在/opt/mysql-5.7.29 

编译中踩过的坑

gcc版本兼容问题

make报错:

 

原因:当时使用的gcc版本(gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC))较低

解决方案:

  1. 改用更高版本的gcc,后来使用了devtoolset-7(gcc7.3.1)
  2. 把build目录清空,指定gcc和g++,重新cmake

你可能感兴趣的:(arm,mysql)