编译和安装

编译和安装Percona过程包括下载源码和依赖库、解压、源码修复、编译和安装等步骤,是手动从源代码构建Percona数据库的详细流程。下文以编译和安装Percona 8.0.25版本为例进行说明。

  1. 下载Percona的源码包percona-server-8.0.25-15tar.gz和boost库包,并上传至服务器“/home”目录下。

    下载地址请参见环境要求

  2. 进入“/home”目录并解压boost库包以及Percona源码包。

    1
    2
    3
    cd /home
    tar xvf boost_1_73_0.tar.gz
    tar zxvf percona-server-8.0.25-15.tar.gz
    

  3. 可选:如果安装的Percona 8.0.15版本,因为下载的Percona源码存在一定的问题,编译Percona前需要修改Percona源码来进行修复。如果安装的Percona 8.0.25版本,则请跳过此步骤。

    1. 进入解压后的Percona源码目录。
      1
      cd /home/percona-server-8.0.15-6
      
    2. 打开sync0rw.cc文件。
      1
      vi storage/innobase/sync/sync0rw.cc
      
    3. “i”进入编辑模式,替换“/storage/innobase/sync/sync0rw.cc”文件中512-514行为以下内容,对sync0rw.cc文件进行修复。
      bool recursive;
      os_thread_id_t writer_thread;
      if (!pass) {
      recursive = lock->recursive;
      os_rmb;
      writer_thread = lock->writer_thread;
      }

      替换前后,如图1图2所示。

      图1 替换前
      图2 替换后

      添加到文件中的代码格式,需要和图2中格式相同。

    4. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  4. 进入解压后的Percona源码文件夹。

    1
    cd /home/percona-server-8.0.25-15
    

  5. 编译Percona。

    1
    cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_BOOST=/home/boost_1_73_0 -DCMAKE_INSTALL_PREFIX=/usr/local/percona -DMYSQL_DATADIR=/data/percona -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LOBWRAP=0 -DMYSQL_UNIX_ADDR=/data/percona/run/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DFORCE_INSOURCE_BUILD=1
    

    如果需要在openEuler 22.03操作系统安装Percona 8.0.15版本,则执行如下cmake命令:

    cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_BOOST=/home/boost_1_68_0 -DCMAKE_INSTALL_PREFIX=/usr/local/percona -DMYSQL_DATADIR=/data/percona -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LOBWRAP=0 -DMYSQL_UNIX_ADDR=/data/percona/run/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DFORCE_INSOURCE_BUILD=1 -DHAVE_CLOCK_GETTIME=1  -DCMAKE_C_COMPILER=/opt/tools/gcc/gcc-7.3.0/bin/gcc -DCMAKE_CXX_COMPILER=/opt/tools/gcc/gcc-7.3.0/bin/g++

    在编译安装过程中,编译路径需要根据实际情况而定,表1为对编译安装的关键路径的解释。若编译过程中提示“Could not find rpcgen”,请参见openEuler系统下编译MySQL过程中,执行CMake命令时提示Could not find rpcgen的解决方法

    表1 编译安装关键路径说明

    参数

    说明

    DWITH_BOOST

    解压的Percona安装压缩包中boost_1_73_0文件夹所在路径。

    例如,本文解压在“/home”目录下,则路径为:“/home/boost_1_73_0”

    DCMAKE_INSTALL_PREFIX

    用于指定软件的安装路径。

    本次安装路径为:“/usr/local/percona”

    DMYSQL_DATADIR

    创建数据库时,数据文件存放的路径。

    本次安装路径为:“/data/percona”

    DCMAKE_C_COMPILER

    指定GCC编译器安装路径,如果安装GCC时没有指定路径,一般默认存放在“/usr/local/bin”目录下。

    说明中的安装路径为:“/opt/tools/gcc/gcc-7.3.0/bin/gcc”,即4.4.12中指定的安装路径。

    DCMAKE_CXX_COMPILER

    指定g++编译器安装路径,如果安装GCC时没有指定路径,一般默认存放在“/usr/local/bin”目录下。

    说明中的安装路径为:“/opt/tools/gcc/gcc-7.3.0/bin/g++”,即4.4.12中指定的安装路径。

  6. 安装Percona。

    1
    make -j 96
    

    “-j 96”参数充分利用多核CPU优势,加快编译速度,参数“-j”后数字为CPU核数,可用cat /proc/cpuinfo | grep processor | wc -l进行查看,此数值应小于或等于CPU核数。

    1
    make install