MySQL 8.4.5 源码编译安装指南

06-01 1646阅读

前言

MySQL 8.4.5 是当前最新的稳定版本之一。对于需要自定义编译选项或深度优化数据库性能的场景,源码编译安装是更好的选择。本文将详细介绍如何从源码编译并安装 MySQL 8.4.5,并提供完整的配置与初始化流程。


环境准备

  • 操作系统: Ubuntu 22.04 LTS(其他 Linux 发行版类似)

  • 用户权限: root 或具有 sudo 权限的用户

  • 磁盘空间: 建议预留至少 5GB 空间


    一、安装依赖工具

    1. 安装编译工具链

    sudo apt update
    sudo apt install -y \
        gcc g++ cmake make \
        libssl-dev libncurses-dev libtirpc-dev \
        bison libaio-dev libjemalloc-dev \
        pkg-config curl wget

    2. 可选依赖

    sudo apt install -y openssl libcurl4-openssl-dev

    二、下载源码并解压

    1. 下载 MySQL 8.4.5 源码

    wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.5.tar.gz

    2. 解压源码

    tar -zxvf mysql-8.4.5.tar.gz
    cd mysql-8.4.5

    三、配置编译参数

    1. 创建构建目录

    mkdir -p build && cd build

    2. 运行 CMake 配置

    sudo cmake .. \
      -DCMAKE_INSTALL_PREFIX=/home/yym/mysql8.4.5/install/mysql \
      -DMYSQL_DATADIR=/home/yym/mysql8.4.5/install/data \
      -DSYSCONFDIR=/home/yym/mysql8.4.5/install/etc \
      -DWITH_INNOBASE_STORAGE_ENGINE=1 \
      -DWITH_MEMORY_STORAGE_ENGINE=1 \
      -DWITH_PARTITION_STORAGE_ENGINE=1 \
      -DDOWNLOAD_BOOST=1 \
      -DWITH_BOOST=../extra/boost \
      -DWITH_SSL=system \
      -DWITH_DEBUG=1

    关键参数说明:

    • -DCMAKE_INSTALL_PREFIX: 安装目录

    • -DMYSQL_DATADIR: 数据库文件存储路径

    • -DWITH_BOOST: 指定 Boost 库路径(自动下载)


      四、编译与安装

      1. 编译源码

      sudo make -j$(nproc)  # 使用多核加速编译

      2. 安装到指定目录

      sudo make install

      五、配置 MySQL 服务

      1. 创建系统用户和组

      sudo groupadd mysql
      sudo useradd -r -g mysql -s /bin/false mysql

      2. 创建数据与日志目录

      cd /home/yym/mysql8.4.5/install
      sudo mkdir -p data logs tmp
      sudo chown -R mysql:mysql data logs tmp
      sudo chmod -R 750 data

      3. 配置文件 my.cnf

      sudo vim etc/my.cnf

      添加以下内容:

      [mysqld]
      user=mysql
      basedir=/home/yym/mysql8.4.5/install/mysql
      datadir=/home/yym/mysql8.4.5/install/data
      socket=/tmp/mysql.sock
      log-error=/home/yym/mysql8.4.5/install/logs/mysqld.log
      pid-file=/home/yym/mysql8.4.5/install/tmp/mysqld.pid
      [client]
      socket=/tmp/mysql.sock

      六、初始化数据库

      1. 初始化数据目录

      cd /home/yym/mysql8.4.5/install/mysql/bin
      sudo ./mysqld \
        --defaults-file=/home/yym/mysql8.4.5/install/etc/my.cnf \
        --initialize \
        --user=mysql \
        --port=3306

      2. 获取临时 root 密码

      sudo cat ../logs/mysqld.log | grep "temporary password"

      输出示例:

      [Note] A temporary password is generated for root@localhost: 3e#kqJfjuq;e

      七、启动 MySQL 服务

      1. 启动服务

      sudo ./mysqld_safe \
        --defaults-file=/home/yym/mysql8.4.5/install/etc/my.cnf \
        --user=mysql \
        --port=3306 &

      2. 验证进程

      ps aux | grep mysqld

      八、修改 root 密码

      1. 使用临时密码登录

      ./mysql -h127.0.0.1 -uroot -p -P3306

      2. 修改密码

      ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
      FLUSH PRIVILEGES;
      EXIT;

      九、验证安装

      1. 重新登录测试

      ./mysql -uroot -p123456

      2. 查看数据库版本

      SELECT VERSION();

      常见问题解决

      1. 编译时 Boost 库下载失败

      手动下载 Boost 并解压到指定路径:

      wget https://sourceforge.net/projects/boost/files/boost/1.77.0/boost_1_77_0.tar.gz
      tar -zxvf boost_1_77_0.tar.gz -C ../extra/boost --strip-components=1

      2. 初始化时报权限错误

      确保所有目录归属 mysql 用户:

      sudo chown -R mysql:mysql /home/yym/mysql8.4.5/install

      3. 启动时报 socket 文件缺失

      检查 my.cnf 中 socket 路径是否正确,或手动创建目录:

      sudo mkdir -p /tmp
      sudo chmod 777 /tmp

      结语

      通过上述步骤,您已成功完成 MySQL 8.4.5 的源码编译安装。此方法支持深度定制化配置,适合对数据库有特殊需求的场景。如果在操作中遇到问题,请优先检查日志文件 /home/yym/mysql8.4.5/install/logs/mysqld.log,并根据错误提示调整配置。

      MySQL 8.4.5 源码编译安装指南
      (图片来源网络,侵删)
      MySQL 8.4.5 源码编译安装指南
      (图片来源网络,侵删)
      MySQL 8.4.5 源码编译安装指南
      (图片来源网络,侵删)
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码