环境信息
操作系统: Kylin Linux Advanced Server V10 (Sword)
架构:X86
MySQL版本:5.7.44
编译
- 安装必要的依赖库和编译工具
bash
sudo yum groupinstall 'Development Tools'
sudo yum install cmake ncurses-devel openssl-devel boost-devel
- 下载 MySQL 源码
从 MySQL 官方网站或 GitHub 仓库下载 MySQL 的源码包。
bash
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 的构建选项。可以根据需要进行定制,例如指定安装目录、禁用不需要的功能等。
bash
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 库。
bash
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 库:
bash
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 路径:
bash
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。
bash
make
sudo make install
- 初始化 MySQL 数据目录
安装完成后,需要初始化 MySQL 数据目录并设置 root 密码。
bash
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql
初始化完成后,记下生成的临时 root 密码,稍后将用于登录 MySQL。
- 配置 MySQL
创建 MySQL 配置文件(如 /etc/my.cnf),并根据需要进行定制。
bash
sudo cp support-files/my-default.cnf /etc/my.cnf
- 启动 MySQL
设置 MySQL 为系统服务,并启动 MySQL。
bash
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo systemctl enable mysql
sudo systemctl start mysql
- 设置 root 密码和安全配置
使用初始化时的临时密码登录 MySQL,并设置新的 root 密码。
bash
sudo /usr/local/mysql/bin/mysql_secure_installation
根据提示完成安全配置,设置 root 密码,删除匿名用户,禁用远程 root 登录等。
- 验证安装
通过登录 MySQL 来验证安装是否成功。
bash
/usr/local/mysql/bin/mysql -u root -p
输入新设置的 root 密码后,进入 MySQL 命令行界面。如果成功进入,说明 MySQL 编译安装完成。
已编译完成的安装包地址: