环境信息

操作系统: Kylin Linux Advanced Server V10 (Sword)
架构:X86
MySQL版本:5.7.44

编译

  • 安装必要的依赖库和编译工具
sudo yum groupinstall 'Development Tools'
sudo yum install cmake ncurses-devel openssl-devel boost-devel libtirpc libtirpc-devel rpcgen
  • 下载 MySQL 源码

从 MySQL 官方网站或 GitHub 仓库下载 MySQL 的源码包。

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz
tar -xzvf mysql-5.7.44.tar.gz
cd mysql-5.7.44
  • 配置 CMake 选项

使用 CMake 配置 MySQL 的构建选项。可以根据需要进行定制,例如指定安装目录、禁用不需要的功能等。

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc/mysql \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=boost

-DCMAKE_INSTALL_PREFIX:指定 MySQL 的安装目录。
-DMYSQL_DATADIR:指定数据存储目录。
-DSYSCONFDIR:指定配置文件目录。
-DWITH_SSL 和 -DWITH_ZLIB:指定使用系统的 SSL 和 Zlib 库。
-DDEFAULT_CHARSET 和 -DDEFAULT_COLLATION:设置默认字符集和校对规则。
-DWITH_BOOST:指定 Boost 库的位置。

关于Boost 库报错导致编译失败问题

Boost 是 MySQL 编译的必需依赖库之一。为了继续编译,CMake 需要知道 Boost 库的位置。

解决方法
选择以下两种方法之一来解决这个问题:

方法 1: 自动下载并使用 Boost 库
可以让 CMake 自动下载并使用 Boost 库。这个方法较为简单,CMake 会自动为你下载并配置 Boost 库。

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc/mysql \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
-DDOWNLOAD_BOOST=1:让 CMake 自动下载 Boost 库。
-DWITH_BOOST=/usr/local/boost:指定 Boost 库将被下载并存储的目录。可以根据需要选择不同的路径。

方法 2: 手动下载并指定 Boost 库路径
你也可以手动下载 Boost 库,并将其路径指定给 CMake。

下载 Boost 库:

wget https://boostorg.jfrog.io/artifactory/main/release/1.59.0/source/boost_1_59_0.tar.gz
tar -xzf boost_1_59_0.tar.gz

在配置 CMake 时指定 Boost 路径:

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc/mysql \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=/path/to/boost_1_59_0

将 /path/to/boost_1_59_0 替换为你实际解压 Boost 的路径。

  • 编译和安装

在配置成功后,使用 make 和 make install 命令编译并安装 MySQL。

make
sudo make install

安装

  • 初始化 MySQL 数据目录

安装完成后,需要初始化 MySQL 数据目录并设置 root 密码。

cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql

初始化完成后,记下生成的临时 root 密码,稍后将用于登录 MySQL。

  • 配置 MySQL

创建 MySQL 配置文件(如 /etc/my.cnf),并根据需要进行定制。

sudo cp support-files/my-default.cnf /etc/my.cnf
  • 启动 MySQL

设置 MySQL 为系统服务,并启动 MySQL。

sudo cp support-files/mysql.server /etc/init.d/mysql
sudo systemctl enable mysql
sudo systemctl start mysql
  • 设置 root 密码和安全配置

使用初始化时的临时密码登录 MySQL,并设置新的 root 密码。

sudo /usr/local/mysql/bin/mysql_secure_installation

根据提示完成安全配置,设置 root 密码,删除匿名用户,禁用远程 root 登录等。

  • 验证安装

通过登录 MySQL 来验证安装是否成功。

/usr/local/mysql/bin/mysql -u root -p

输入新设置的 root 密码后,进入 MySQL 命令行界面。如果成功进入,说明 MySQL 编译安装完成。

已编译完成的安装包地址:

标签: none

添加新评论