编译和安装
编译和安装Percona过程包括下载源码和依赖库、解压、源码修复、编译和安装等步骤,是手动从源代码构建Percona数据库的详细流程。下文以编译和安装Percona 8.0.25版本为例进行说明。
- 下载Percona的源码包percona-server-8.0.25-15tar.gz和boost库包,并上传至服务器“/home”目录下。
下载地址请参见环境要求。
- 进入“/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
- 可选:如果安装的Percona 8.0.15版本,因为下载的Percona源码存在一定的问题,编译Percona前需要修改Percona源码来进行修复。如果安装的Percona 8.0.25版本,则请跳过此步骤。
- 进入解压后的Percona源码目录。
1
cd /home/percona-server-8.0.15-6
- 打开sync0rw.cc文件。
1
vi storage/innobase/sync/sync0rw.cc
- 按“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; }
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 进入解压后的Percona源码目录。
- 进入解压后的Percona源码文件夹。
1
cd /home/percona-server-8.0.25-15
- 编译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中指定的安装路径。
- 安装Percona。
1
make -j 96
“-j 96”参数充分利用多核CPU优势,加快编译速度,参数“-j”后数字为CPU核数,可用cat /proc/cpuinfo | grep processor | wc -l进行查看,此数值应小于或等于CPU核数。
1
make install