Debian编译安装mysql8.0.41源码包 笔记250401

Debian编译安装mysql8.0.41源码包

以下是在Debian系统上通过编译源码安装MySQL 8.0.41的完整步骤,包含依赖管理、编译参数优化和常见问题处理:


准备工作

  1. 安装编译依赖
bash 复制代码
sudo apt update
sudo apt install -y \
  cmake gcc g++ make libssl-dev libncurses5-dev libtinfo-dev \
  libreadline-dev zlib1g-dev libaio-dev libevent-dev \
  bison pkg-config
  1. 下载MySQL 8.0.41源码包
bash 复制代码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41

关键配置与编译
3. 配置CMake参数(优化版)

bash 复制代码
mkdir build && cd build
cmake .. \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql8 \
  -DMYSQL_DATADIR=/var/lib/mysql8 \
  -DSYSCONFDIR=/etc \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_SSL=system \
  -DWITH_ZLIB=system \
  -DWITH_BOOST=../boost \
  -DENABLE_DOWNLOADS=OFF \
  -DDEFAULT_CHARSET=utf8mb4 \
  -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci \
  -DFORCE_INSOURCE_BUILD=1
  1. 启动编译(多核加速)
bash 复制代码
make -j$(nproc) 2>&1 | tee compile.log  # 记录编译日志
sudo make install

系统集成与初始化
5. 创建专用用户和目录

bash 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo mkdir -p /var/lib/mysql8
sudo chown -R mysql:mysql /usr/local/mysql8 /var/lib/mysql8
  1. 初始化数据库(自动生成临时密码)
bash 复制代码
cd /usr/local/mysql8
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8 --datadir=/var/lib/mysql8

记录临时密码(查看日志或输出):

bash 复制代码
sudo grep 'temporary password' /var/lib/mysql8/*.log
  1. 配置文件my.cnf
bash 复制代码
sudo nano /etc/mysql8.cnf  # 新建专用配置文件

输入以下内容:

ini 复制代码
[mysqld]
user=mysql
basedir=/usr/local/mysql8
datadir=/var/lib/mysql8
socket=/tmp/mysql8.sock
port=3307  # 避免与系统自带MySQL冲突
log-error=/var/log/mysql8/error.log

服务管理与安全配置
8. 创建Systemd服务

bash 复制代码
sudo nano /etc/systemd/system/mysql8.service

输入以下内容:

ini 复制代码
[Unit]
Description=MySQL Server 8.0.41
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/etc/mysql8.cnf
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
  1. 启动服务并设置开机自启
bash 复制代码
sudo systemctl daemon-reload
sudo systemctl start mysql8
sudo systemctl enable mysql8
  1. 修改root密码
bash 复制代码
/usr/local/mysql8/bin/mysql -u root -p --socket=/tmp/mysql8.sock

输入临时密码后执行:

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourSecurePassword123!';
FLUSH PRIVILEGES;

高级优化配置

  1. 内存参数调整(根据服务器配置)
ini 复制代码
# 在/etc/mysql8.cnf的[mysqld]段添加
innodb_buffer_pool_size=2G
key_buffer_size=512M
max_connections=500
  1. 开启慢查询日志
ini 复制代码
slow_query_log=1
slow_query_log_file=/var/log/mysql8/slow.log
long_query_time=2

故障排查指南

现象 解决方法
编译时报Boost not found 确认源码包是否完整,检查-DWITH_BOOST=../boost参数指向正确目录
启动时权限错误 执行sudo chown -R mysql:mysql /var/lib/mysql8修复权限
端口冲突 修改/etc/mysql8.cnf中的port值,并重启服务
无法连接socket 检查/tmp/mysql8.sock是否存在,或显式指定socket路径连接

版本管理建议

  1. 多版本共存
    通过不同端口(如3306/3307)和socket路径实现多MySQL实例共存。

  2. 环境变量隔离
    为编译版MySQL单独设置PATH:

    bash 复制代码
    echo 'export PATH=/usr/local/mysql8/bin:$PATH' >> ~/.bashrc

通过以上步骤,您可以在Debian系统上安全地编译安装MySQL 8.0.41,并获得完全可控的自定义配置。此方法适合需要深度定制或运行多版本MySQL的环境。




以下是在Debian系统下编译安装MySQL 8.0.41源码包的详细步骤:

1. 安装编译依赖

bash 复制代码
sudo apt update
sudo apt install cmake libncurses-dev libssl-dev make gcc g++ bison
sudo apt install libtinfo5 zlib1g-dev libreadline-dev

2. 下载源码包

bash 复制代码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41

3. 创建构建目录并配置

bash 复制代码
mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1

4. 编译并安装

bash 复制代码
make -j$(nproc)
sudo make install

5. 创建mysql用户和组

bash 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

6. 初始化数据库

bash 复制代码
sudo mkdir -p /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql

记录输出的临时root密码(示例:A temporary password is generated for root@localhost: xxxxxxxx

7. 配置服务文件

bash 复制代码
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo update-rc.d mysql defaults

8. 启动MySQL服务

bash 复制代码
sudo systemctl start mysql

9. 设置环境变量

bash 复制代码
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

10. 登录并修改root密码

bash 复制代码
mysql -u root -p
# 输入初始化时记录的临时密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
exit

11. 验证安装

bash 复制代码
mysql --version
# 应显示:mysql  Ver 8.0.41 for Linux on x86_64 (Source distribution)

补充说明:

  1. 如果编译时出现依赖缺失错误,根据提示安装对应开发包(如sudo apt install libxxx-dev

  2. 可通过以下命令查看完整编译选项:

bash 复制代码
cmake .. -L
  1. 默认数据目录:/var/lib/mysql

  2. 默认配置文件:/etc/my.cnf(需手动创建)

  3. 建议定期执行:

bash 复制代码
sudo apt update && sudo apt upgrade
sudo /usr/local/mysql/bin/mysql_upgrade -u root -p

完成以上步骤后,您的MySQL 8.0.41源码编译安装即完成。建议通过SHOW VARIABLES LIKE "%version%";命令在MySQL客户端中再次验证版本信息。




以下是基于知识库信息整理的在Debian系统上编译安装MySQL 8.0.41源码包的步骤指南:


步骤 1:安装编译环境和依赖项

bash 复制代码
sudo apt update
sudo apt install -y build-essential cmake libncurses-dev libssl-dev libaio-dev libelf-dev libmecab-dev libreadline-dev libbz2-dev liblz4-dev liblzma-dev libzstd-dev libjemalloc-dev libnuma-dev libcurl4-openssl-dev libprotobuf-dev protobuf-compiler libmysqlclient-dev

步骤 2:下载 MySQL 8.0.41 源码包

bash 复制代码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41

步骤 3:配置编译选项

bash 复制代码
# 创建构建目录(可选,但推荐)
mkdir build
cd build

# 执行 CMake 配置(根据需求调整参数)
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/lib/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_SSL=system \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=boost  # 如果没有 Boost 库,可添加 -DWITH_BOOST=system 或手动下载 Boost

参数说明

  • -DCMAKE_INSTALL_PREFIX:指定安装路径(默认 /usr/local/mysql)。
  • -DMYSQL_DATADIR:指定数据目录(默认 /var/lib/mysql)。
  • -DDEFAULT_CHARSET-DDEFAULT_COLLATION:设置默认字符集和排序规则。
  • -DWITH_SSL=system:使用系统 SSL 库。
  • -DWITH_BOOST:指定 Boost 库路径(如果未安装 Boost,可添加 -DWITH_BOOST=system 或下载 Boost 源码)。

步骤 4:编译和安装

bash 复制代码
# 编译(使用多线程加速,如 4 核 CPU 可用 -j4)
make -j4

# 安装
sudo make install

步骤 5:初始化 MySQL 数据目录

bash 复制代码
# 创建 MySQL 数据目录和用户
sudo mkdir -p /var/lib/mysql
sudo groupadd mysql
sudo useradd -r -g mysql -s /sbin/nologin mysql

# 将目录权限赋予 mysql 用户
sudo chown -R mysql:mysql /usr/local/mysql
sudo chown -R mysql:mysql /var/lib/mysql

# 初始化数据库
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql

步骤 6:配置 MySQL 系统服务

bash 复制代码
# 复制 MySQL 系统服务配置文件
sudo cp support-files/mysql.server /etc/init.d/mysql

# 赋予执行权限
sudo chmod +x /etc/init.d/mysql

# 设置开机自启
sudo update-rc.d mysql defaults

步骤 7:配置 my.cnf

bash 复制代码
# 创建或编辑配置文件
sudo vi /etc/my.cnf

# 示例配置(根据需求调整):
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
innodb_buffer_pool_size=1G

[client]
default-character-set=utf8mb4
socket=/var/run/mysqld/mysqld.sock

步骤 8:启动 MySQL 服务

bash 复制代码
sudo service mysql start

步骤 9:安全设置

bash 复制代码
# 运行安全脚本(设置 root 密码、删除匿名用户等)
sudo /usr/local/mysql/bin/mysql_secure_installation

常见问题解决

  1. 依赖项缺失

    • 如果编译时提示缺少库(如 libssl-dev),安装对应包:

      bash 复制代码
      sudo apt install <package-name>
  2. Boost 库缺失

    • 若编译时提示缺少 Boost,可手动下载并编译:

      bash 复制代码
      wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz
      tar -zxvf boost_1_78_0.tar.gz
      cd boost_1_78_0
      ./bootstrap.sh
      ./b2
      sudo ./b2 install
  3. 权限问题

    • 确保数据目录和安装目录的权限正确:

      bash 复制代码
      sudo chown -R mysql:mysql /var/lib/mysql

验证安装

bash 复制代码
# 检查 MySQL 版本
/usr/local/mysql/bin/mysql --version

# 登录 MySQL(使用步骤 9 设置的 root 密码)
/usr/local/mysql/bin/mysql -u root -p

注意事项

  • 如果遇到 cmake 配置失败,请检查输出的错误信息并调整参数。
  • MySQL 8.0 需要较新的编译工具链,确保系统依赖已更新。
  • 如果使用自定义路径,需确保环境变量(如 PATH)包含 /usr/local/mysql/bin

如果需要进一步优化或调整配置,可以参考知识库中提到的 my.cnf 参数和安全加固步骤。




下面为你介绍在Debian系统上编译安装MySQL 8.0.41源码包的具体步骤:

1. 安装编译依赖

要编译MySQL源码,得先安装必要的依赖包。打开终端并执行以下命令:

bash 复制代码
sudo apt update
sudo apt install -y build-essential cmake bison libncurses5-dev libssl-dev libreadline-dev libffi-dev

2. 下载MySQL 8.0.41源码包

你可以从MySQL官方网站下载MySQL 8.0.41的源码包,也能使用wget命令下载:

bash 复制代码
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.41.tar.gz

3. 解压源码包

下载完成后,解压源码包:

bash 复制代码
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41

4. 创建构建目录

为了保持源码目录的整洁,你可以创建一个单独的构建目录:

bash 复制代码
mkdir build
cd build

5. 使用CMake配置编译选项

在构建目录中,使用CMake配置编译选项:

bash 复制代码
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
         -DMYSQL_DATADIR=/usr/local/mysql/data \
         -DSYSCONFDIR=/etc \
         -DWITH_MYISAM_STORAGE_ENGINE=1 \
         -DWITH_INNOBASE_STORAGE_ENGINE=1 \
         -DWITH_MEMORY_STORAGE_ENGINE=1 \
         -DWITH_READLINE=1 \
         -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
         -DMYSQL_TCP_PORT=3306 \
         -DENABLED_LOCAL_INFILE=1 \
         -DWITH_PARTITION_STORAGE_ENGINE=1 \
         -DEXTRA_CHARSETS=all \
         -DDEFAULT_CHARSET=utf8mb4 \
         -DDEFAULT_COLLATION=utf8mb4_unicode_ci

6. 编译和安装

配置完成后,进行编译和安装:

bash 复制代码
make -j$(nproc)
sudo make install

7. 配置MySQL

创建MySQL用户和组,设置文件权限,并初始化数据目录:

bash 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo chown -R mysql:mysql /usr/local/mysql
sudo mkdir /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

8. 启动MySQL服务

bash 复制代码
sudo bin/mysqld_safe --user=mysql &

9. 配置环境变量

为了方便使用MySQL命令,你可以将MySQL的二进制目录添加到系统的环境变量中:

bash 复制代码
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
source ~/.bashrc

10. 安全设置

使用mysql_secure_installation脚本进行安全设置,如设置root密码、删除匿名用户等:

bash 复制代码
sudo mysql_secure_installation

按照以上步骤操作,你就能在Debian系统上成功编译安装MySQL 8.0.41源码包。




在Debian上编译安装MySQL 8.0.41源码包的步骤如下:

1. 安装依赖项

确保系统中已安装必要的开发工具和库:

bash 复制代码
sudo apt-get update
sudo apt-get install -y build-essential cmake libssl-dev libncurses-dev bison flex libaio-dev

2. 下载MySQL源码包

从MySQL官方网站下载MySQL 8.0.41的源码包:

bash 复制代码
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.41.tar.gz

3. 解压源码包

解压下载的文件:

bash 复制代码
tar -zxvf mysql-boost-8.0.41.tar.gz
cd mysql-8.0.41

4. 创建MySQL用户和组

创建一个专门用于运行MySQL的用户和组:

bash 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

5. 配置编译选项

使用CMake配置编译参数:

bash 复制代码
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SSL=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci

6. 编译和安装

编译源码并安装:

bash 复制代码
make -j$(nproc)
sudo make install

7. 初始化数据库

初始化MySQL数据库并记录生成的临时密码:

bash 复制代码
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

8. 配置MySQL服务

将MySQL服务配置为系统服务:

bash 复制代码
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo systemctl enable mysql

9. 启动MySQL服务

启动MySQL服务:

bash 复制代码
sudo systemctl start mysql

10. 登录并修改密码

使用临时密码登录MySQL并修改密码:

bash 复制代码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';

11. 配置环境变量(可选)

为了方便使用MySQL命令,可以将MySQL的可执行文件路径添加到环境变量中:

bash 复制代码
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

完成以上步骤后,MySQL 8.0.41应该已在Debian系统上成功安装并运行。




以下是Debian系统编译安装MySQL 8.0.41源码包的详细步骤:


一、环境准备

  1. 更新系统

    bash 复制代码
    sudo apt update && sudo apt upgrade -y
  2. 安装依赖项

    bash 复制代码
    sudo apt install -y cmake build-essential libncurses-dev libssl-dev \
    libreadline-dev zlib1g-dev libboost-dev pkg-config bison

二、下载源码

  1. 获取源码包

    MySQL官方仓库下载源码(需注册Oracle账户),或使用wget:

    bash 复制代码
    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.41.tar.gz
  2. 验证完整性

    检查SHA256校验和(需与官网一致):

    bash 复制代码
    sha256sum mysql-boost-8.0.41.tar.gz

三、编译配置

  1. 解压源码

    bash 复制代码
    tar -zxvf mysql-boost-8.0.41.tar.gz
    cd mysql-8.0.41
  2. CMake配置

    创建编译目录并配置参数(根据需求调整):

    bash 复制代码
    mkdir build
    cd build
    cmake .. \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/var/lib/mysql \
    -DSYSCONFDIR=/etc \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_BOOST=../boost \
    -DENABLED_LOCAL_INFILE=1 \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci

    关键参数说明

    • -DCMAKE_INSTALL_PREFIX:安装路径
    • -DWITH_BOOST:指定Boost库路径(源码包已包含)
    • -DDEFAULT_CHARSET:默认字符集

四、编译与安装

  1. 编译源码

    使用多线程加速(根据CPU核心数调整-j4):

    bash 复制代码
    make -j4
  2. 安装到系统

    bash 复制代码
    sudo make install

五、系统配置

  1. 创建MySQL用户/组

    bash 复制代码
    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
  2. 初始化数据目录

    bash 复制代码
    sudo mkdir -p /var/lib/mysql
    sudo chown -R mysql:mysql /var/lib/mysql
    /usr/local/mysql/bin/mysqld --initialize --user=mysql

    记录初始密码 :输出中的root@localhost: 临时密码

  3. 配置文件my.cnf

    创建/etc/my.cnf并添加基础配置:

    ini 复制代码
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/run/mysqld/mysqld.sock
    log-error=/var/log/mysql/error.log
    pid-file=/var/run/mysqld/mysqld.pid

六、服务管理

  1. 注册为Systemd服务

    创建文件/etc/systemd/system/mysql.service

    ini 复制代码
    [Unit]
    Description=MySQL Server
    After=network.target
    
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  2. 启动服务

    bash 复制代码
    sudo systemctl daemon-reload
    sudo systemctl start mysql
    sudo systemctl enable mysql

七、安全初始化

  1. 设置root密码

    bash 复制代码
    /usr/local/mysql/bin/mysql_secure_installation

    按提示操作:输入临时密码 → 修改密码 → 删除测试数据库 → 禁用远程root登录等。


八、验证安装

  1. 检查版本

    bash 复制代码
    /usr/local/mysql/bin/mysql --version
  2. 登录数据库

    bash 复制代码
    mysql -u root -p

常见问题

  1. 依赖缺失

    若CMake报错,根据提示安装缺失的包(如libtirpc-dev)。

  2. 编译失败

    • 检查磁盘空间(需至少15GB可用)
    • 清理后重试:make clean && rm CMakeCache.txt
  3. 权限问题

    确保所有MySQL相关目录(如/var/lib/mysql)属主为mysql:mysql


按此流程操作,可在Debian系统上完成MySQL 8.0.41的源码编译安装。




以下是基于 Debian 系统编译安装 MySQL 8.0.41 源码包的详细指南,整合了多篇文档的核心步骤与注意事项:


一、环境准备与依赖安装

  1. 更新系统与基础工具

    bash 复制代码
    sudo apt update && sudo apt upgrade
    sudo apt install build-essential cmake libncurses5-dev libssl-dev bison git

    build-essential 包含 GCC 和 make 工具

    bison 用于 SQL 解析,libncurses5-dev 支持终端界面开发

  2. 安装 Boost 库

    • 从 Boost 官网下载 1.77.0 或兼容版本

    • 解压后通过 CMake 参数指定路径,例如:

    bash 复制代码
    cmake . -DWITH_BOOST=/path/to/boost_1_77_0

二、源码编译与安装

  1. 获取源码包

    bash 复制代码
    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
    tar -zxvf mysql-8.0.41.tar.gz
    cd mysql-8.0.41
  2. 配置编译选项

    bash 复制代码
    mkdir build && cd build
    cmake .. \
      -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
      -DMYSQL_DATADIR=/var/lib/mysql \
      -DSYSCONFDIR=/etc \
      -DWITH_INNOBASE_STORAGE_ENGINE=1 \
      -DWITH_BOOST=/path/to/boost_1_77_0

    • 关键参数说明:

    CMAKE_INSTALL_PREFIX:指定安装路径

    WITH_DEBUG=1 可启用调试模式

  3. 编译与安装

    bash 复制代码
    make -j$(nproc)   # 多核并行加速编译
    sudo make install

    • 编译时间约 30 分钟至数小时,取决于硬件性能


三、数据库初始化与配置

  1. 创建专用用户与权限设置

    bash 复制代码
    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    sudo chown -R mysql:mysql /usr/local/mysql
  2. 初始化数据库

    bash 复制代码
    cd /usr/local/mysql
    sudo bin/mysqld --initialize --user=mysql

    记录临时密码:初始化日志末尾会生成临时 root 密码

  3. 配置文件与启动脚本

    bash 复制代码
    sudo cp support-files/my-default.cnf /etc/my.cnf
    sudo cp support-files/mysql.server /etc/init.d/mysqld
    sudo systemctl daemon-reload

四、服务管理与验证

  1. 启动 MySQL 服务

    bash 复制代码
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
  2. 登录与修改密码

    bash 复制代码
    mysql -uroot -p
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
  3. 环境变量配置(可选)

    /usr/local/mysql/bin 添加到 PATH 变量:

    bash 复制代码
    echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
    source ~/.bashrc

五、常见问题解决

  1. 依赖缺失错误

    • 若编译报错提示缺少库文件,重新检查 libssl-devncurses-devel 等是否安装

  2. Boost 路径错误

    • 确保 CMake 参数 WITH_BOOST 指向解压后的 Boost 目录

  3. 权限问题

    • 数据库目录需属主为 mysql 用户,避免启动失败


引用说明

• 依赖项安装参考了

• Boost 库配置来自

• 编译参数与初始化步骤整合自




要在Debian上从源码包编译安装MySQL 8.0.41,可以按照以下步骤进行:

步骤一:准备工作

  1. 更新系统包

    bash 复制代码
    sudo apt update && sudo apt upgrade -y
  2. 安装必要的依赖包

    bash 复制代码
    sudo apt install -y build-essential cmake libncurses5-dev libssl-dev

步骤二:下载MySQL源码包

  1. 下载MySQL 8.0.41源码

    bash 复制代码
    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
  2. 解压源码包

    bash 复制代码
    tar -xzvf mysql-8.0.41.tar.gz
    cd mysql-8.0.41

步骤三:配置编译选项

  1. 创建构建目录

    bash 复制代码
    mkdir build && cd build
  2. 运行CMake配置

    bash 复制代码
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
             -DDEFAULT_CHARSET=utf8mb4 \
             -DDEFAULT_COLLATION=utf8mb4_general_ci \
             -DWITH_EXTRA_CHARSETS=all \
             -DWITH_SSL=system \
             -DWITH_ZLIB=system

步骤四:编译和安装

  1. 编译源码

    bash 复制代码
    make -j $(nproc)
  2. 安装MySQL

    bash 复制代码
    sudo make install

步骤五:初始化和配置MySQL

  1. 创建MySQL用户和组

    bash 复制代码
    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
  2. 初始化数据库

    bash 复制代码
    cd /usr/local/mysql
    sudo bin/mysqld --initialize --user=mysql
  3. 设置权限

    bash 复制代码
    sudo chown -R mysql:mysql /usr/local/mysql
  4. 启动MySQL服务

    bash 复制代码
    sudo bin/mysqld_safe --user=mysql &
  5. 设置开机自启(可选)
    可以参考MySQL官方文档配置systemd服务文件以实现开机自启。

步骤六:设置环境变量(可选)

将MySQL的bin目录添加到PATH中:

bash 复制代码
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

注意事项

  • 编译过程可能需要较长时间,具体取决于系统性能。
  • 确保在编译前备份重要数据,以防万一出现问题。
  • 根据需要调整CMake配置选项,以满足特定需求。

按照以上步骤,你应该能够在Debian系统上成功编译并安装MySQL 8.0.41。




在Debian系统上编译安装MySQL 8.0.41源码需要以下步骤,请确保全程使用root权限或配合sudo执行:


1. 安装依赖

bash 复制代码
apt update
apt install -y cmake gcc g++ make libncurses-dev libssl-dev libtinfo5 \
    libsasl2-dev zlib1g-dev libreadline-dev pkg-config bison libboost-dev

2. 下载源码

bash 复制代码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41

3. 配置编译选项

bash 复制代码
mkdir build
cd build
cmake .. \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/var/lib/mysql \
    -DSYSCONFDIR=/etc \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_SSL=system \
    -DWITH_BOOST=../boost

关键参数说明

  • -DCMAKE_INSTALL_PREFIX:MySQL安装路径
  • -DMYSQL_DATADIR:数据库文件存储路径
  • -DWITH_BOOST:指向源码包内的boost目录

4. 编译并安装

bash 复制代码
make -j$(nproc)  # 使用多核编译加速
make install

5. 创建MySQL用户和组

bash 复制代码
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

6. 初始化数据库

bash 复制代码
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql

初始化后会生成临时root密码(在终端输出中查找 A temporary password is generated for root@localhost: 临时密码)。


7. 配置systemd服务

创建文件 /etc/systemd/system/mysql.service

ini 复制代码
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/mysql/my.cnf
Restart=on-failure

[Install]
WantedBy=multi-user.target

8. 启动MySQL

bash 复制代码
systemctl daemon-reload
systemctl start mysql
systemctl enable mysql

9. 安全配置

bash 复制代码
/usr/local/mysql/bin/mysql_secure_installation

按提示设置root密码、删除匿名用户、禁止远程root登录等。


10. 配置环境变量

/etc/profile 末尾添加:

bash 复制代码
export PATH=/usr/local/mysql/bin:$PATH

执行 source /etc/profile 生效。


常见问题

  1. 依赖缺失:如果编译失败,检查错误信息并安装对应依赖。
  2. Boost路径错误 :确保 -DWITH_BOOST 指向源码内的 boost 目录。
  3. 权限问题 :确保 /var/lib/mysqlmysql-files 目录权限属于 mysql 用户。

通过以上步骤即可完成MySQL 8.0.41的源码编译安装。







相关推荐
郭涤生3 小时前
Chapter 11: Stream Processing_《Designing Data-Intensive Application》
笔记·分布式
我是个假程序员3 小时前
sql server数据库可疑修复
数据库
极限实验室5 小时前
如何使用 Nginx 代理 Easysearch 服务
数据库·nginx
whn19775 小时前
selectdb修改表副本
数据库
TDengine (老段)6 小时前
TDengine 中的视图
数据库·物联网·oracle·时序数据库·tdengine·iotdb
V---scwantop---信6 小时前
现代科幻赛博朋克风品牌海报电子竞技设计无衬线英文字体 Glander – Techno Font
笔记·字体
Kyrie_Li6 小时前
Redis-Sentinel(哨兵模式)
数据库·redis·sentinel
计算机毕设定制辅导-无忧学长7 小时前
TDengine 数据写入优化:协议选择与批量操作(一)
网络·数据库·tdengine
Mr.洛 白7 小时前
OpenEuler/CentOS一键部署OpenGauss数据库教程(脚本+视频)
数据库·opengauss·gaussdb·国产数据库安装·安装脚本
炬火初现7 小时前
redis-cpp-cpp如何使用lua脚本
数据库·redis·lua