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的源码编译安装。







相关推荐
悠哉悠哉愿意34 分钟前
【ROS2学习笔记】rqt 模块化可视化工具
笔记·学习·机器人·ros2
奥尔特星云大使2 小时前
MySQL 备份基础(一)
数据库·sql·mysql·备份·mysql备份
努力学习的小廉2 小时前
初识MYSQL —— 库和表的操作
数据库·mysql·oracle
丰锋ff3 小时前
英一2010年真题学习笔记
笔记
浔川python社3 小时前
网络爬虫技术规范与应用指南系列(xc—1)
数据库·爬虫
代码不停4 小时前
计算机工作原理(简单介绍)
数据库·redis·缓存
偷心伊普西隆4 小时前
Python Access:删除数据库中指定的表和查询
数据库·python
程序员大雄学编程4 小时前
「机器学习笔记2」机器学习系统设计:从理论到实践
人工智能·笔记·机器学习
魏郴4 小时前
外卖项目技术亮点总结笔记
笔记
佛系彭哥4 小时前
C语言笔记(2)
c语言·笔记