MySQL 编译安装

一、准备工作

#安装boost
mkdir -p /usr/local/boost
cd /usr/local/boost
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
#不需要解压缩

#安装编译包
yum install -y gcc-c++ cmake make bison-devel ncurses-devel
#创建下载安装路径
mkdir -p /data/soft
cd /data/soft
#下载软件包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz
wget https://github.com/aws/audit-plugin-for-mysql/archive/refs/heads/mysql-5.7.zip
#解压缩
tar -xvf mysql-5.7.44.tar.gz 
unzip audit-plugin-for-mysql-mysql-5.7.zip
#将插件源代码复制到 MySQL源代码之上,以便它编译为 MySQL 构建的一部分
cd audit-plugin-for-mysql-mysql-5.7
rsync -av plugin/ /data/soft/mysql-5.7.44/plugin/
#mysql-test 是可选的,除非你想运行 MTR 测试:
rsync -av mysql-test/ /data/soft/mysql-5.7.44/mysql-test/

二、编译安装MySQL
MySQL 编译

cmake -DCMAKE_INSTALL_PREFIX=/data/mysql \
-DSYSCONFDIR=/data/mysql/etc \
-DMYSQL_DATADIR=/data/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock \
-DMYSQL_USER=mysql \
-DEXTRA_CHARSETS=all \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_ZLIB=system \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost

相关解释:

CMAKE_INSTALL_PREFIX:指定安装目录为
SYSCONFDIR: 指定配置文件存储目录
MYSQL_DATADIR: MySQL 数据文件的存储目录
MYSQL_TCP_PORT: 指定 TCP 联接端口 
MYSQL_UNIX_ADDR:指定 MySQL 的 UNIX socket 文件的位置
MYSQL_USER: 指定 MySQL 运行所需的用户
EXTRA_CHARSETS: 扩展字符集
WITH_READLINE:快捷键功能
WITH_SSL:指定编译 MySQL 的时候是否需要 SSL 支持。我们这里设置为 system,这样编译的 MySQL 将会使用操作系统(Centos)自带的 SSL 库。
WITH_EMBEDDED_SERVER:编译嵌入式服务器支持
ENABLED_LOCAL_INFILE:启用加载本地数据
WITH_MYISAM_STORAGE_ENGINE:确定 MySQL 是否需要编译支持该存储引擎,如果需要就将这个参数的值设置为 1,否则设置为 0
WITH_INNOBASE_STORAGE_ENGINE:确定 MySQL 是否需要编译支持该存储引擎,如果需要就将这个参数的值设置为 1,否则设置为 0
WITH_ARCHIVE_STORAGE_ENGINE:确定 MySQL 是否需要编译支持该存储引擎,如果需要就将这个参数的值设置为 1,否则设置为 0
WITH_BLACKHOLE_STORAGE_ENGINE:确定 MySQL 是否需要编译支持该存储引擎,如果需要就将这个参数的值设置为 1,否则设置为 0
WITH_MEMORY_STORAGE_ENGINE:确定 MySQL 是否需要编译支持该存储引擎,如果需要就将这个参数的值设置为 1,否则设置为 0
DWITH_ZLIB:启用libz库支持(zib、gzib相关)
DOWNLOAD_BOOST 和 WITH_BOOST:MySQL8 依赖于 boost 库,如果本地没有 boost 库,需要通过 DOWNLOAD_BOOST 和 WITH_BOOST 下载和编译。